3

次の状況:GlassfishでEJBを使用すると、AとBの2つのエンティティクラスがあります。これらは@ManyToMany関係によってリンクされているため、追加のテーブルA_Bがあります。

ここで、Aのインスタンスで作業したいと思います。つまり、クラスBとの関係も変更します。より正確には、後でAの値を変更します(クライアントからのBeanのメソッドの別の呼び出しで)。変更を送信したいのですが。

そのため、Aのインスタンスに楽観的なロックを使用することを考えました。問題は、@ ManyToMany関係がテーブルA_Bに格納されているため、DB内のAのエントリが変更されず、バージョンフィールドがインクリメントされないため、このアプローチが機能しないことを要約したものです。

@ManyToManyの場合と同様に、A_Bでエンティティをロックしても機能せず、2つのクラスに影響する新しい行が挿入される可能性があります。AとBのインスタンス間のリンクが変更、追加、または削除されないようにするには、ある種の範囲ベースのロックが必要です。残念ながら、私はその問題の適切な解決策を見つけられませんでした。

他のエンティティとのすべての関係を含め、Aのエンティティをロックするための最良の方法は何でしょうか?

4

0 に答える 0