获取org.hibernate.MappingException:没有JDBC类型的Dialect映射:-4exception?
我在query.list()行得到以下exception:
org.hibernate.MappingException: No Dialect mapping for JDBC type: -4 at org.hibernate.dialect.TypeNames.get(TypeNames.java:56) at org.hibernate.dialect.TypeNames.get(TypeNames.java:81) at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:369) at org.hibernate.loader.custom.CustomLoader$Metadata.getHibernateType(CustomLoader.java:559) at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.performDiscovery(CustomLoader.java:485) at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:501) at org.hibernate.loader.Loader.getResultSet(Loader.java:1787) at org.hibernate.loader.Loader.doQuery(Loader.java:662) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) at org.hibernate.loader.Loader.doList(Loader.java:2211) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095) at org.hibernate.loader.Loader.list(Loader.java:2090) at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289) at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695) at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142) at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
以下是我的配置文件:
com.mysql.jdbc.Driver mysql jdbc:mysql://localhost:3306/mydatabase root mydatabase org.hibernate.dialect.MySQL5InnoDBDialect
当我尝试将应用程序运行到Eclipse IDE中时,此exception不会出现,但是当我创建jar应用程序并运行时,我只是得到它。 提前致谢…
有时,数据库会返回无法映射到Hibernate类型的奇怪类型的自定义SQL查询的结果(尤其是在select
下使用表达式时)。
您需要找到违规查询并向其添加显式强制转换。
例如
Object o = session.createSQLQuery("select 2*2").uniqueResult();
可能会导致这样的问题。 你可以修改如下:
Object o = session.createSQLQuery("select cast(2*2 as int)").uniqueResult();
得到了解决方案:
只需更改查询,我将获取整个记录而不是选择特定的。 例如从表中然后从表Object获取相应的字段(此处为脚本)值而不是使用表中的select脚本 ,现在工作正常。
- 如何在多对多关系中使用hibernate和JPA删除孤立实体?
- 创建名为’org.springframework.security.filterChains’Spring + Hibernate + UserDetailService的bean时出错
- NamingException:jta.UserTransaction
- 使用http://www.hibernate.org/dtd 的Hibernate问题
- 使用hibernate获取更少的列
- ClassCastException:org.springframework.orm.jpa.EntityManagerHolder无法强制转换为org.springframework.orm.hibernate5.SessionHolder
- 中大结果集上的Hibernate,JDBC和Java性能
- 创建名为’entityManagerFactory’的bean时出错调用init方法失败
- 如何在struts2中使用@Valid注释触发validation?