我有以下实体;
Claimant:
@OneToMany(mappedBy = "payTo", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@NotAudited
private Set<Payment> payments = new HashSet<Payment>();
Payment:
@OneToMany(mappedBy = "rofOf", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
private Set<Payment> returnOfFundings = new HashSet<Payment>();
在做claimant.merge()
时获得以下异常“集合[com.bfds.saec.domain.Payment.returnOfFundings]未由flush()处理”
对于上述一个解决方案,我发现只需在合并前加入申请人并重新加载付款。
但请告诉我,有没有其他方法可以解决上述问题,因为我不想通过付款重新加载索赔人。
问题的根源可能是什么?我在那里定义的关系有什么问题吗?
答案 0 :(得分:1)
问题的根本原因似乎是Hibernate中的HHH-273错误。根据评论,当Envers接触收藏时,它也会弹出。因为它在版本4.0.1中得到修复,所以摆脱它的最好方法是更新Hibernate。