没有JDBC类型的Dialect映射:7

时间:2011-06-02 17:02:23

标签: hibernate

当我尝试提取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)

3 个答案:

答案 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