flush()异常未处理集合在JPA中

时间:2012-06-13 13:00:20

标签: jpa

我有以下实体;

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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