0
Supose我有一個包含酒吧列表的對象Foo。 如果我在Criteria的Bar類上創建了一個別名,我只會收到實際上有Bars的項目。現在休眠獲取沒有孩子的項目
criteria.createAlias("bars", "bars");
,如果我想有全部有沒有酒吧的FOOS,我會創造我的別名帶LEFT OUTER JOIN。
criteria.createAlias("bars", "bars", JoinType.LEFT_OUTER_JOIN);
現在,我的Foo班有大量的孩子(有孩子,有孩子......)。我現在不得不將LEFT_OUTER_JOIN全部或有其他解決方案,以便我的列表完整,而不僅僅是包含帶適當孩子的Foos的列表?
使用左外連接並不意味着你只能得到那些沒有孩子,但你得到他們_好well_。您必須添加另一個條件,即count(children)= 0或children = null(或類似)。 – Thomas
正是我想要的。我希望有和沒有孩子的人。所以唯一的解決辦法是留下外部加入他們呢? –
可能是的,雖然我不知道標準,但我想你必須在所有連接上指定連接類型(除了連接)。如果在查詢中有多個連接,那麼除了限制只有子節點的用戶外,它們可能還有其他目的。如果這是唯一的原因,你刪除,你可能想要刪除一般的聯接。 – Thomas