2013-03-01 86 views
0

我想用hibernate從我的數據庫的多個表中返回數據。 該查詢在我的SQL服務器上正常工作,但它似乎不工作在休眠狀態。休眠createSQLQuery JOIN引發異常

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它工作正常。

+1

你能嘗試'p.pagetext'這應該匹配與'VbulletinThread'領域提供別名。 – 2013-03-01 12:16:44

+0

是的,但沒有運氣。這將是:SELECT ... t.forumid,p.pagetext AS頁面文本從vbulletin.thread ... ORDER BY t.lastpost DESC – Brandon 2013-03-01 13:51:56

回答

0

我想出了問題所在。這與事實無關,我使用了兩張桌子。

問題是,我需要在我的SQL查詢中轉換相應字段的值以使其工作。

所以基本上:

CAST(p.pagetext as char(255)) as pagetext