2

メッセージ駆動型 Bean では、一意のエントリを持つルックアップ テーブルにエントリを永続化します。基本的に、条件 API を使用して select ステートメントを作成し、エントリが見つからない場合は作成します。

em.persist(entry)特定のケースでは、このエントリの作成 ( ) がデータベースの一意の制約に違反するため、現在、このコードで mysql エラーが発生しています。私の mdb の別のインスタンスが、ルックアップ エントリを見つけられず、作成する前に作成しました。

この同期の問題を処理するにはどうすればよいですか?

4

1 に答える 1

1

SELECT FOR UPDATEを使用するか、別の方法で一意性を確保する必要があります(たとえば、Java 内でエントリの一意の部分を生成するなど)。

Hibernate は悲観的ロックをサポートしていますが、これは同じことの別の名前だと思います。

于 2011-04-15T14:10:05.287 に答える