如果Parent和Child是一對多關(guān)系
查詢Parent時,想過濾parent.children的話既们,
如果只是單純的寫
select p from Parent p left join p.children child where child.foo='bar'
這樣只是為查詢Parent增加了過濾條件,但當(dāng)調(diào)用查詢結(jié)果的p.getChildren()時正什,扔會查出全部的Child啥纸,而不是經(jīng)過child.foo='bar'過濾過的Child。
如果想要過濾p.children的話婴氮,應(yīng)該使用fetch
select p from Parent p left join
fetch
p.children child where child.foo='bar'
在查詢Parent的同時取得children斯棒,這樣在調(diào)用p.getChildren()時就是過濾后的結(jié)果了