Нет отображения диалектов для типа JDBC: 7 - PullRequest
1 голос
/ 02 июня 2011

Когда бы я ни пытался извлечь значение типа Float, я получаю это исключение.Я использую MYSQL с Hibernate (Liferay)

Hibernate:

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 голосов
/ 02 июня 2011

Можете ли вы предоставить определение своего класса и отображение Hibernate? JDBC тип 7 ​​- это java.sql.Types.REAL. Возможно, вам придется указать float или double вместо этого.

0 голосов
/ 02 июня 2011

Должно быть исправлено начиная с Hibernate 3.2.5: HHH-2663 .Если вам нужно использовать более старую версию Hibernate, вы можете использовать одну из следующих опций:

  • Использовать другой тип в базе данных, например double
  • Добавить явное приведение кзапрос: case(IFNULL(a.deltatime,0) as double)
  • Подкласс Dialect, который вы используете, и зарегистрируйте тип REAL вручную
0 голосов
/ 02 июня 2011

Эта ссылка может быть уместной:

https://forum.hibernate.org/viewtopic.php?f=1&t=973997&view=next

Несколько советов: я считаю полезным вырезать и вставить мое лучшее предположение относительно основной причины ошибки в Google. Скорее всего, я не первый, кто столкнулся с определенной проблемой.


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...