2

次の 2 つのエンティティがあります。

1-ディール

@OneToMany(cascade=CascadeType.ALL,mappedBy = "deal", fetch = FetchType.EAGER)
@Fetch( FetchMode.SELECT)
private List<DealCheckList> dealCheckList;

2-DealCheckList

@JoinColumn(name = "DEAL_ID", referencedColumnName = "DEAL_ID", insertable = false, updatable = false)
@ManyToOne(fetch = FetchType.LAZY)  
private Deal deal;

子オブジェクトの削除中、つまり DealCheckList を使用して

.......
.......  
transaction = session.beginTransaction();

Deal deal = (Deal) session.createCriteria(Deal.class)
                          .add(Restrictions.eq("dealId",  dealId)).uniqueResult();         

for(DealCheckList checklist : deal.getDealCheckList()){                        
            session.delete(checklist);
 }
transaction.commit();

以下のエラーが表示されます

Caused by: org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations):

助けてください。

4

1 に答える 1

1

dealCheckList からチェックリスト オブジェクトを削除する必要があります。DealCheckList のリストには "cascade all" があるため、オブジェクトが含まれている場合は自動的に保存されます。

エラーメッセージは非常に明確です「関連から削除されたオブジェクトを削除してください」

于 2012-09-25T14:05:21.487 に答える