当我尝试提取Float值时,我收到此异常。 我正在使用MYSQL和Hibernate(Liferay)
休眠:
select IFNULL(a.deltatime,0), b.vlid , a.TESTDATE
from testresult a,XREFRTGTESTRESULT b
where a.id = b.id
and a.TESTDATE between '2011-06-01 22:03:01 ' AND '2011-06-02 22:03:01 '
and a.id='51006'
org.hibernate.MappingException: No Dialect mapping for JDBC type: 7 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:368) 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:150) at com.virtela.reports.drilldown.service.persistence.ReportsDrillDownMySQLFinderImpl.getVPNDrillDown(ReportsDrillDownMySQLFinderImpl.java:61) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597)
答案 0 :(得分:0)
此链接可能相关:
https://forum.hibernate.org/viewtopic.php?f=1&t=973997&view=next
一条忠告:我觉得切割和帮助是有帮助的。将关于错误的根本原因的最佳猜测粘贴到Google中。机会很好,我不是第一个遇到特定问题的人。
答案 1 :(得分:0)
你能提供你的类定义和Hibernate映射吗? JDBC类型7是java.sql.Types.REAL。您可能需要指定float或double。
答案 2 :(得分:0)
应该修复自Hibernate 3.2.5:HHH-2663。如果必须使用旧版本的Hibernate,可以使用以下选项之一:
double
case(IFNULL(a.deltatime,0) as double)
Dialect
进行子类化并手动注册类型REAL