Проблема возникала при использовании Native Query в Jboss-4.2.2. В качестве БД использовалась MySQL 5.*. То есть при запуске запросов вида :
Query query =getEntityManager().createNativeQuery(«SELECT agr.AGREEMENTID , enc.NAME\n» +
«\tFROM GEL$DOC$AGREEMENT agr INNER JOIN GEL$DOC$AGR$ENCLOSURE enc ON (enc.AGREEMENTID = agr.AGREEMEN
TID)\n» +
«UNION\n» +
«SELECT template.TEMPLATEID, tenc.NAME\n» +
«\tFROM GEL$DOC$TEMPLATE template INNER JOIN GEL$DOC$TPL$PARAGRAPH tenc ON (tenc.TEMPLATEID = templat
e.TEMPLATEID)») ;
List
obj = query.getResultList() ;
)
падала ошибка:
ERROR [STDERR] javax.ejb.EJBException: javax.persistence.Persistenc
eException: org.hibernate.MappingException:
No Dialect mapping for JDBC type: -1
Проблема оказалась в использовании полей типа text, которые не мапятся в hibernate.
Решить проблему удалось, пересобрав hibernate, изменив в Mysql5Dialect метод registerVarcharTypes и добавив туда строки
registerColumnType(Types.LONGVARCHAR, 65535, «text»);
registerHibernateType(Types.LONGVARCHAR, 65535, «text»);