Проблема возникала при использовании 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”);