0

こんにちは、次のような状況があります。

2 セットのオブジェクト (Obj1、Obj2) を保持する 2 つのフィールド ManyToMany を持つエンティティ TAG。Obj1 を削除するときに、TAG エンティティに設定されている Obj1 に含まれるすべての情報を削除したいと考えています。これを行う方法を教えてもらえますか?


@Entity(name = "tag")
public class Tag {

    .....

@ManyToMany(fetch = FetchType.LAZY)
private Set<Checkpoint> checkpoints;

    ......
}

@Entity(name = "checkpoint")
public class Checkpoint implements Serializable {

            ......

}

チェックポイントにはタグへの参照はありません。Cascade を ManyToMany に設定すると、タグを削除すると、このタグを持つすべてのユーザーが削除されます。私が欲しいのは、チェックポイントが削除されたときに tag_checkpoint テーブルの行を削除することです。私は自分でそれを行う必要がありますか、これを行う良い方法はありますか??

4

2 に答える 2

0

自分でデータベースからオブジェクトを削除しました。

于 2013-08-27T15:59:47.837 に答える
0

ManyToMany がカスケード削除を行う場合、@ManyToMany アノテーションで cascade=CascadeType.ALL を設定すると機能するはずです。そうでない場合は、CascadeType.ALL を使用して、(可能であれば) @OneToMany を複数回使用することを検討することをお勧めします。

于 2013-06-23T05:49:21.303 に答える