2012-06-13 36 views
1

我有實體如下;集合沒有通過flush()異常處理在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]沒有被沖洗處理()

對於上述一個解決方案,我發現只需在合併之前重新加載索賠人並加入付款即可。

但請讓我知道,有沒有其他辦法解決上述問題,因爲我不想用付款重新加載索賠人。

什麼可能是問題的根源?我在那裏定義的關係有什麼問題?

回答

1

問題的根本原因似乎是Hibernate中的HHH-273錯誤。根據評論,當Envers接觸收集時,它也會彈出。因爲它在4.0.1版本中得到了修復,所以擺脫它的最好方法是更新Hibernate。

+0

非常感謝您回覆Mikko :-) – Surendra