2011-03-17 9 views
0

jpaを使用せずに多対多の関係でコードを書く方法@manytomany注釈?たとえば、2つのクラスの場合ソフトウェアおよびタグの場合。タグを削除すると、すべてのソフトウェアが削除されます。私は様々なアプローチを使って@manytomany注釈でそれをしようとしましたが、うまくいきません。私はこのサイトで私の質問に似た何かを見てきましたが、コードサンプルがあります。 (私は両側で@OneToManyの関係になっているはずですが、コードをとることは素晴らしいことです)。jpaの多対多関係の代替方法

可能であれば@manytomanyを使用して行う方法。

詳細情報:soft1、soft2 < - > tag1、soft2 < - > tag2の場合、tag1を削除するとsoft1のみ削除されます。休止状態はそれを処理できますか?

+0

多対多リレーションシップのカスケード削除を実行することを意味しますか? – Augusto

+0

はい。私が言いたいのは。 – ses

+0

多分それは何とかDELETE_ORPHANに関連しています – ses

答えて

0

@org.hibernate.annotations.Cascade(
    {org.hibernate.annotations.CascadeType.PERSIST, 
    org.hibernate.annotations.CascadeType.MERGE, 
    org.hibernate.annotations.CascadeType.REFRESH, 
    org.hibernate.annotations.CascadeType.DETACH, 
    org.hibernate.annotations.CascadeType.DELETE_ORPHAN} 
) 

これは、あなたがidを持つソフトウェアを削除するには、次のシナリオ

  • を避けるために、カスケードからorg.hibernate.annotations.CascadeType.REMOVEを削除することですしてみてください:5
  • hibernate deletes id:5と7のタグ
  • これらのidでタグ付けされたソフトウェアのすべての行が削除され、カスケードが再び開始されるので、em pty DB。
+0

動作しません。私はタグを削除したいがソフトウェアは削除しない。 – ses