无法延迟加载 JPA 关系

我正在与 Jhipster 合作。我无法懒惰地吸引客户。


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


 PROPERTY

 id

 ...


 CUSTOMER

 id

 ...


 CUSTOMER_PROPERTY

 id

 customer_id

 property_id

 value


 relationship OneToMany {

    Customer to CustomerProperty                    

 }

 relationship ManyToOne {

    CustomerProperty to Property    

 }

我的域名


Customer.java


 @OneToMany(mappedBy = "customer", fetch = FetchType.LAZY)

 @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)

 private Set<CustomerProperty> customerProperties = new HashSet<>();

Property.java 没有映射


CustomerProperty.java


 @ManyToOne

 private Property property;


 @ManyToOne

 @JsonIgnoreProperties("customerProperties")

 private Customer customer;

我已经尝试显式设置 fetch = FetchType.LAZY 但它不断将完整的 Customer 对象与所有 CustomerProperties List


我想了解为什么 fetch 不起作用


梦里花落0921
浏览 67回答 1
1回答

莫回无

如果一个集合是否被延迟加载,调试不是一个好的评估机制。调试器本身可能会触发初始化。而不是使用调试器使用org.hibernate.Hibernate.isInitialized(yourCollection)在加载实体后验证它是否已初始化。如果此方法返回 false 但您仍然怀疑稍后会初始化集合,您应该在可能的后续调用(其他地方)中搜索错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java