我正在与 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/