最新のSpring Data REST(JPAとMySQL DB)プロジェクトを使用しています。私は2つのオブジェクトを持っています。しかし、私が2つのうちの1つを削除すると、削除要求(両方のオブジェクトではない)を受け取ったオブジェクトとリレーションシップを削除したいだけです。SpringデータRESTで多対多リレーションシップを設定すると、あるオブジェクトを削除しても他のオブジェクトは削除されません。
私が関係しています:
- タスク
- タスクが複数のユーザー(「により所有」)に関連することができ、ユーザーが関連することができ、ユーザ
@ManyToMany
@JoinTable(name = "task_user", joinColumns = @JoinColumn(name = "task_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"))
private Set<User> users;
:( "自身")複数のタスク
タスククラスへ
Userクラス:
@ManyToMany(mappedBy = "users")
private Set<Task> tasks;
task_userテーブルは、2つの列
- TASK_ID(タスクID)
- USER_ID(ユーザのID)
タスクを(/タスク/ {id}へのDELETEを介して)削除すると、正しく動作します(タスクはタスクテーブルから削除され、その関係はtask_use rテーブル)。私が持っている問題は、ユーザーを削除するとユーザーテーブルから削除されますが、関係はまだtask_userテーブルに存在するということです。私が望む何
:
タスクを削除する- 、「task_user」と「タスク」のエントリに対応するすべてのエントリを削除します。 "user"のエントリを削除しません。
- ユーザを削除すると、 "task_user"の対応するエントリと "user"のエントリがすべて削除されます。 「タスク」のエントリを削除しません
これで設定を完了することは可能ですか?または、イベントハンドラなどの外部キーまたはカスタムロジックを使用する必要がありますか?
ありがとう!カスケードは私が必要なものです。 – RestfulSunshine