带有eclipse链接的JPA第一次没有加载子记录

时间:2014-04-21 07:10:59

标签: jpa eclipselink

您好我有一张表VariantValidityBE 它有一个像这样的关系列

 @OneToMany(mappedBy = "variantValidityBE", fetch = FetchType.LAZY)
 private List<VariantValidityValueBE> variantValidityBEList;

在另一张表中

   @ManyToOne
   @JoinColumn(name = "CATEGORY_ID", referencedColumnName = "ID")
   private VariantValidityBE variantValidityBE;

我的方法就像这样

    List<VariantValidityBE> resultList = getResultList(VariantValidityBE.FIND_ALL); 
for (VariantValidityBE variantValidityBE : resultList) {
  List<VariantValidityValueBE> options = variantValidityBE.getVariantValidityBEList();
 }

选项的值是旧值,新插入的子记录不会出现

值正确插入数据库。

但如果我重新启动应用程序,它会提供更新的记录。

我用了很多次的同类关系,从来没有遇到过这种类型的问题。

1 个答案:

答案 0 :(得分:1)

由于JPA实体被视为常规Java对象,因此在进行更改时,您需要保持双向关系的双方彼此同步。 JPA不会执行魔术来镜像对另一方的双向关系的一方所做的更改。因此,当您添加新的VariantValidityValueBE实例并设置其variantValidityBE时,还必须将VariantValidityValueBE添加到variantValidityBEList。否则,variantValidityBEList将保持不变并且过时,直到从数据库刷新。