您好我有一张表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();
}
选项的值是旧值,新插入的子记录不会出现
值正确插入数据库。
但如果我重新启动应用程序,它会提供更新的记录。
我用了很多次的同类关系,从来没有遇到过这种类型的问题。
答案 0 :(得分:1)
由于JPA实体被视为常规Java对象,因此在进行更改时,您需要保持双向关系的双方彼此同步。 JPA不会执行魔术来镜像对另一方的双向关系的一方所做的更改。因此,当您添加新的VariantValidityValueBE实例并设置其variantValidityBE时,还必须将VariantValidityValueBE添加到variantValidityBEList。否则,variantValidityBEList将保持不变并且过时,直到从数据库刷新。