JPA:总是加载 OneToMany 关系(不考虑 LAZY)
JPA: OneToMany relationship gets always loaded (LAZY not considered)
我有一个 JPA 实体 Rent,它与租用的物品(称为 "Rentable")有 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
但我也得到了相关的可出租物品。
有人可以帮帮我吗?我希望延迟加载可出租的东西!
谢谢!
当您在调试器中检查集合时,您的 ORM 框架 (Hibernate) 被迫从数据库延迟加载它。
您需要打开 SQL logging 并且您会看到仅当您在调试器中检查它或在 Rent
实例上调用 getRentables()
时才会加载您的 Rentables。
我有一个 JPA 实体 Rent,它与租用的物品(称为 "Rentable")有 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
但我也得到了相关的可出租物品。
有人可以帮帮我吗?我希望延迟加载可出租的东西!
谢谢!
当您在调试器中检查集合时,您的 ORM 框架 (Hibernate) 被迫从数据库延迟加载它。
您需要打开 SQL logging 并且您会看到仅当您在调试器中检查它或在 Rent
实例上调用 getRentables()
时才会加载您的 Rentables。