我們有兩個表家庭和成員,這兩者之間的關係是家族有一組成員,但成員之間沒有任何家庭關係。如何使用加入休眠條件下面的情況
我想要使用dob和family的成員,因爲我使用的是Hibernate標準API,但我沒有得到如何編寫連接查詢,因爲成員沒有使用它的實例實例。所以不能使用FetchMode。任何其他方式來實現這一目標?
在此先感謝。 - Ravi Nikam。
我們有兩個表家庭和成員,這兩者之間的關係是家族有一組成員,但成員之間沒有任何家庭關係。如何使用加入休眠條件下面的情況
我想要使用dob和family的成員,因爲我使用的是Hibernate標準API,但我沒有得到如何編寫連接查詢,因爲成員沒有使用它的實例實例。所以不能使用FetchMode。任何其他方式來實現這一目標?
在此先感謝。 - Ravi Nikam。
感謝你們,我與我的同事的一個解決這個作爲下
DetachedCriteria subquery = DetachedCriteria
.forClass(Family.class, "family")
.add(Expression.eq("family.id", family.getId()));
subquery.createAlias("members", "members")
.add(Restrictions.eqProperty("members.id", "m.id"))
.add(Expression.eq("members.DOB",Date));
subquery.setProjection(Property.forName("members.id"));
Criteria crit = session.createCriteria(Member.class, "m")
.add(Subqueries.propertyIn("m.id", subquery));
results = crit.list();
結果有會員我要求的清單。
,而不是試圖做
from Member m join m.family f where f.name = ?
這是不可能的,你可以做完全相反的
select m from Family f join f.members m where f.name = ?
我知道,這是HQL不是標準,但是這就是我更流暢用。儘管把這個HQL翻譯成標準應該是微不足道的。
謝謝sfussenegger – ravinikam 2009-11-02 07:39:25
你不清楚你想要選擇什麼 - 個人會員/成員/家庭成員/列表上的成員集合?你能澄清嗎?此外,如果你可以發佈你的映射或至少描述它們,它會有所幫助。 – ChssPly76 2009-10-30 17:14:47
是的,看到我想從數據庫中使用DOB和家族搜索會員。我希望單個匹配成員給予查詢結果頂部的給定家庭成員。使用HQL會很容易,如下所述,但我希望它通過標準,因爲我沒有家庭作爲成員的財產,我有一組成員在家庭。 – ravinikam 2009-11-02 07:37:25