1

我有以下实体;

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() 处理

对于上述一种解决方案,我发现只需在合并之前重新加载索赔人并加入付款。

但是请告诉我,有没有其他方法可以解决上述问题,因为我不想重新加载索赔人付款。

问题的根本原因可能是什么?我在那里定义的关系有什么问题吗?

4

1 回答 1

1

问题的根本原因似乎是Hibernate 中的 HHH-273错误。根据评论,当 Envers 触及收藏时,它也会弹出。因为它在 4.0.1 版本中已修复,所以摆脱它的最佳方法是更新 Hibernate。

于 2012-06-13T15:07:26.500 回答