我想找回在一個數據庫中的命中和所有的記錄,我使用連接抓取語句下面是我的查詢連接抓取不在Hibernate查詢語言工作
String q = "SELECT oneChat from " + Chat.class.getName() + " oneChat "
+ " join fetch oneChat.user1 "
+ " join fetch oneChat.user2 "
+ " join fetch oneChat.user3 "
+ " join fetch oneChat.groupData "
+ "where oneChat.dmlStatus != :dmlStatusValue"
+ " AND group_id = :groupIdValue" + " AND reference_id = 0"
+ " AND root_chat_id = oneChat.chatId";
總共有4個外鍵/加入我的表中,所以我添加了聯合讀取語句,但它不工作,即不返回任何東西,如果我刪除聯合讀取語句,我會得到結果集。我的表連接默認情況下是Eager(沒有將其更改爲Lazy)。
在日誌文件中也沒有sql語法錯誤。我錯過了什麼?
更新: 這是因爲第二個加入,即user2返回null,所以我沒有得到任何數據。現在如果有人能告訴我如何解決這個問題,查詢應該是獨立的,它不應該依賴數據。
你能添加那個實體嗎?當你運行一個與此hql相當的sql時,你會得到結果嗎? –
是的,我得到的結果..簡單的HQL沒有這些聯接取工作正常。我得到了結果。 – developer
請現在檢查更新 – developer