2014-01-07 48 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加载只有一些地址的用户?这正是规范所禁止的。您应该加载地址,并从加载的地址获取用户。 –

相关问题