2014-01-07 45 views
0

我對所有關係都使用了延遲加載,但出於性能原因,我想在1查詢中使用1關聯進行加載加載。急切地提取和過濾關聯

我無法使用FETCH關鍵字來強制加載此關聯,因爲我希望能夠過濾此關聯,並且規範不支持此關聯。

實現這件事最簡單的方法是什麼?

回答

0

您可以使用不同的聯接爲過濾:

select u from User u 
left join fetch u.address fetchedAddress 
inner join u.address filteredAddress 
where filteredAddress.street = :street 
+0

我不能這樣做,因爲一個實體可以有成千上萬的相關實體。這就是爲什麼我要過濾那些 – zootropo

+1

所以,你的意思是你想讓JPA加載只有一些地址的用戶?這正是規範所禁止的。您應該加載地址,並從加載的地址獲取用戶。 –

相關問題