使用冬眠實現(xiàn)聯(lián)合查詢,我必須采取什么替代方法?我知道休眠狀態(tài)目前不支持聯(lián)合查詢,現(xiàn)在我看到的建立聯(lián)合的唯一方法是使用視圖表。另一個選擇是使用普通的jdbc,但是這樣一來,我將失去所有示例/條件查詢的功能,以及hibernate對表/列執(zhí)行的hibernate映射驗證。
3 回答

慕森王
TA貢獻1777條經(jīng)驗 獲得超3個贊
使用VIEW??梢允褂脤嶓w名稱將相同的類映射到不同的表/視圖,因此您幾乎不需要重復(fù)。在那里,這樣做就可以了。
普通的JDBC還有另一個隱藏的問題:它不知道Hibernate會話緩存,因此,如果在事務(wù)結(jié)束之前緩存了某些內(nèi)容,并且沒有從Hibernate會話中清除該內(nèi)容,則JDBC查詢將找不到它。有時候可能會很令人困惑。

守著星空守著你
TA貢獻1799條經(jīng)驗 獲得超8個贊
我必須同意弗拉基米爾。我也考慮在HQL中使用UNION,但找不到解決方法。奇怪的是,我發(fā)現(xiàn)(在Hibernate FAQ中)不支持UNION,與UNION有關(guān)的錯誤報告標記為“已修復(fù)”,新聞組的人說該聲明將在UNION處被截斷,其他新聞組的人則說它有效很好...經(jīng)過一天的沉思,我最終將HQL移植回普通的SQL,但是在數(shù)據(jù)庫的View中進行操作是個不錯的選擇。就我而言,部分查詢是動態(tài)生成的,因此我不得不在代碼中構(gòu)建SQL。
添加回答
舉報
0/150
提交
取消