2
我使用Hibernate選擇一個數字(x)的實體Foo。每個foo都有一對多的集合條和baz,它們被設置爲延遲獲取。我需要爲每個foo填充bar和baz,所以我絕對不希望每個集合都發佈一個子查詢(2 * x + 1個選擇)。使用兩個一對多集合來查詢一個hibernate實體
但是,我也不一定要setFetchMode(FetchMode.JOIN),因爲這將返回笛卡爾積(bar x baz)。另外,如果我將foo和bar定義爲列表,我將收到重複的項目。我可以發佈兩個條件:
List<Foo> foos;
foo = session.createCriteria(Foo.class).setFetchMode("bar", FetchMode.JOIN).list();
foo = session.createCriteria(Foo.class).setFetchMode("baz", FetchMode.JOIN).list();
但代碼看起來相當sl。。它看起來像第一個查詢是不必要的。有沒有更好的方法來獲取酒吧和巴茲?
什麼是富有其他成員(非集合),我想?你會單獨選擇它們嗎? – schmmd 2011-02-11 19:30:02