Java JPA:OneToMany关系总是被加载(不考虑懒惰)
我有一个JPA实体租金,它与租赁的物品(称为“可租赁”)有1:M的关系。我希望这个rentables能够被延迟加载,但似乎它们总是被加载的,即使我使用fetch=FetchType.LAZY。 这是我的密码:Java JPA:OneToMany关系总是被加载(不考虑懒惰),java,hibernate,jpa,wildfly,Java,Hibernate,Jpa,Wildfly,我有一个JPA实体租金,它与租赁的物品(称为“可租赁”)有1:M的关系。我希望这个rentables能够被延迟加载,但似乎它们总是被加载的,即使我使用fetch=FetchType.LAZY。 这是我的密码: @Entity @Table (name = "rent") public class Rent implements Serializable{ ........ @OneToMany(cascade = CascadeType.ALL, fetch = FetchT
@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> ();
但我也有相关的租赁物
谁能帮帮我吗?我想租的东西被懒洋洋地装上
谢谢大家! 当您在调试器中检查集合时,您的ORM框架(Hibernate)将被迫从数据库延迟加载它
您需要打开,并且您将看到,只有在调试器中检查您的Rentables时,或者在
Rent
实例上调用getRentables()
时,您的Rentables才会被加载。在调试器中检查集合时,ORM框架(Hibernate)被迫从数据库延迟加载它
您需要打开该选项,并且只有在调试器中检查您的Rentables时,或者在
Rent
实例上调用getRentables()
时,才会看到您的Rentables被加载。不能确定,但可能是因为您检查了调试器中的值而加载了它们。有点像。打开查询日志记录并检查在什么时候执行查询。@RobbyCornelissen谢谢,将进行检查,更不用说默认情况下一对多是懒惰的,因此它不可能与配置有关。不能确定,但它们可能已加载,因为您在调试器中检查了值。有点像。打开查询日志记录并检查在什么时候执行查询。@RobbyCornelissen谢谢,将进行检查,更不用说默认情况下一对多是懒惰的,因此它不太可能与配置有关。
from Rent r where r.kunde.id = 83