gpt4 book ai didi

java - 无法延迟加载 JPA 关系

转载 作者:搜寻专家 更新时间:2023-10-30 19:47:15 25 4
gpt4 key购买 nike

我正在与 Jhipster 合作。我无法懒惰地获取客户。

我做了一个像这样的JDL...

 PROPERTY
id
...

CUSTOMER
id
...

CUSTOMER_PROPERTY
id
customer_id
property_id
value

relationship OneToMany {
Customer to CustomerProperty
}
relationship ManyToOne {
CustomerProperty to Property
}

我的域名

客户.java

 @OneToMany(mappedBy = "customer", fetch = FetchType.LAZY)
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<CustomerProperty> customerProperties = new HashSet<>();

属性.java 没有映射

客户属性.java

 @ManyToOne
private Property property;

@ManyToOne
@JsonIgnoreProperties("customerProperties")
private Customer customer;

我已经尝试过显式设置 fetch = FetchType.LAZY,但它会不断带来完整的 Customer 对象和所有 CustomerProperties 列表

我想了解为什么提取不起作用

最佳答案

调试不是评估集合是否已延迟加载的良好机制。调试器本身可能会触发初始化。

而不是使用调试器使用

org.hibernate.Hibernate.isInitialized(yourCollection) 

验证它是否在您的实体加载后被初始化。

如果此方法返回 false 但您仍然怀疑稍后会初始化集合,则您应该在可能的后续调用(其他地方)中搜索错误。

关于java - 无法延迟加载 JPA 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54736609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com