2014-11-20 233 views
0

我已經使用hibernate建立了兩個表之間的關係。父記錄並不總是有與之相伴的子記錄,所以當我查詢表來返回結果集時,我得到一個「集合與任何會話都沒有關聯」的異常。休眠@OneToOne異常

當結果集僅包含帶有子節點的記錄或僅包含沒有子節點的記錄時,不會發生此異常;它僅在結果集混合時纔會發生。

是否有我可以使用的註釋,以便當父記錄沒有關聯的子記錄時,查詢不會拋出異常?我試圖用@NotFound忽略缺少兒童記錄,但它沒有奏效。我仍然得到相同的例外。

我已經在網上搜索了這個問題的解決方案,但好像Hibernate沒有設置來處理這種特殊情況。

回答

0

嘗試獲取子記錄過:

select p 
from Parent p 
left join fetch p.child 

其中孩子是從父@OneToOne協會兒童。

0

您應該向我們展示您的課程。我不明白你怎麼能收集OneToOne關係。也許嘗試在你的屬性上設置optional = true。