加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java-无法延迟加载JPA关系

发布时间:2020-12-14 19:26:08 所属栏目:Java 来源:网络整理
导读:我正在与Jhipster合作.我无法懒洋洋地获取客户. 我已经像这样制作了一个JDL PROPERTY id ... CUSTOMER id ... CUSTOMER_PROPERTY id customer_id property_id value relationship OneToMany { Customer to CustomerProperty } relationship ManyToOne { Cust

我正在与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<>();

Property.java
?????没有映射

CustomerProperty.java

 @ManyToOne
 private Property property;

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

我已经尝试过显式设置fetch = FetchType.LAZY,但是它始终将完整的Customer对象与所有CustomerProperties列表一起使用

我想了解为什么提取失败

最佳答案
调试不是评估集合是否已延迟加载的好方法.调试器本身可能会触发初始化.

与其使用调试器,不如使用

org.hibernate.Hibernate.isInitialized(yourCollection) 

验证您的实体加载后是否已初始化.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读