我無法獲取作爲條件表達式結果的相關實體對象列表。我有兩個具有多對多關係的對象,例如ObjectA < - > ObjectB,其中ObjectA的單個實例可以綁定到ObjectB的多個實例,而ObjectB的實例可能綁定到ObjectA的多個實例。這種關係存儲在典型的連接表中,但出於遺留原因,對象模型是這樣的,即ObjectB不直接瞭解它與ObjectA的關係。我試圖創建一個條件表達式來獲取所有通過連接表對象,具有與任何對象A的實例對象B的以下內容:從與休眠條件的關係項目實體
getDetachedCriteria(ObjectAObjectB.class)
.setFetchMode("objectB", FetchMode.JOIN)
.setProjection(Projections.property("objectB"));
但是預期這不起作用,因爲它出現Projection API只支持投影標量屬性而不支持實體對象。是否可以通過Projections或其他Criteria API指定這種類型的選擇?
糾正我,如果我錯了,但你的映射是ObjectA N <--> 1 ObjectB所以你應該使用ManyToOne? – overmeulen 2013-02-20 09:19:56
@overmeulen對不起,我誤解了這個問題,我更新了我的帖子以糾正一些錯誤。這種關係實際上是多對多的,但是查詢是基於連接表的。 – Clayton 2013-02-21 01:09:26
你能告訴我們你的映射嗎?你不能讓ObjectB使用雙向映射意識到它與ObjectA的關係嗎?它不會改變你的數據庫模式,它會讓事情變得更容易! – overmeulen 2013-02-21 09:47:20