我正在尝试使用hibernate从我的数据库的多个表中返回数据。 该查询在我的SQL服务器上运行正常,但它似乎无法在休眠状态下工作。
Query threadQuery = session.createSQLQuery("SELECT CONCAT(t.lastposter) as lastposter, t.lastpost, t.title, t.threadid, t.lastpostid, t.firstpostid, t.forumid, p.pagetext FROM vbulletin.thread AS t INNER JOIN vbulletin.post AS p ON p.postid = t.firstpostid WHERE t.open != 10 AND t.visible = 1 AND t.forumid != 19 AND t.forumid != 20 ORDER BY t.lastpost DESC").setResultTransformer(Transformers.aliasToBean(VbulletinThread.class));
异常
org.hibernate.MappingException: No Dialect mapping for JDBC type: -1
注意:当我从查询中删除p.pagetext时,它工作正常。
答案 0 :(得分:0)
我弄清楚问题是什么。这与我使用2张桌子的事实毫无关系。
问题是,我需要在SQL查询中强制转换相应字段的值才能使其正常工作。
基本上是这样的:
CAST(p.pagetext as char(255)) as pagetext