0

次の 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;

実行中session.delete(deal)に以下のエラーが発生します

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

助けてください。

4

2 に答える 2

1

これはおそらく、削除しようとしているオブジェクトが他のコレクションの子であることを意味します。オブジェクトに cascade="all" を設定すると、他の親に属していない限り、その子は自動的に削除/更新されます。

親コレクションから削除しようとしているオブジェクトを削除する必要があります。

例:

objectBeingDeleted.getParent().getChildren().remove(objectBeingDeleted); 

そして、あなたはすることができます

session.delete(objectBeingDeleted);

幸運を

于 2012-09-24T11:19:34.153 に答える
0

この取引をまだ参照しているDealCheckListオブジェクトがあり、休止状態呼び出しによって取引を削除する前に、Java でそこから削除する必要があります。

于 2012-09-24T11:11:13.187 に答える