JPA:OneToMany关系总是被加载(不考虑LAZY)

时间:2018-01-25 05:57:38

标签: java hibernate jpa wildfly

我有一个JPA实体Rent与租用的项目有1:M的关系(称为“可租用”)。我希望这个可租用的内容被延迟加载,但似乎它们总是被加载,即使我使用fetch = FetchType.LAZY。 这是我的代码:

@Entity
@Table (name = "rent")
public class Rent implements Serializable{

    ........

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinTable(name = "rent_rentable")
    private List <Rentable> rentables = new ArrayList <Rentable> ();

以下是我如何加载租金:

 from Rent r  where r.kunde.id = 83

但我也得到了相关的可租赁物品。 Rent with its rentables loaded

是的,有人可以帮助我吗?我希望可租借的房间很懒散!

谢谢!

1 个答案:

答案 0 :(得分:3)

当您在调试器中检查集合时,您的ORM框架(Hibernate)被迫从数据库中懒惰地加载它。

您需要打开SQL logging并且您会看到只有在调试器中检查它或者在getRentables()实例上调用Rent时才会加载您的Rentables。