私はEclipse Link実装を使用していますが、これはHibernateにも関係している可能性があります。 は、いくつかの時点で私はと呼ばれる:私はアトミック操作として考えJPAロックはアトミックと見なされますか?
em.lock(entity, LockModeType.OPTIMISTIC_FORCE_INCREMENT);
を。
驚いたことに、@Version
フィールドにブレークポイントを設定した後、entity._persistence_get
とentity._persistence_set
に多くの呼び出しがあるようです。
明らかに、2つのブラウザを使用してデバッガで同じポイントに到達し、それらの隠し機能を実行している間にスレッド間を切り替えることは可能です。これが完了すると、両方のスレッドが後でフラッシュ/コミットすることは不可能です。
リリースモードではないとき、またはデバッガだけが原因で変更が発生しますか?
よろしく、 ダニエル
質問がわかりません。あなたは原子で何を意味しますか?添付エンティティは、複数のスレッドで使用されることは想定されていません。 –
原子=操作中にコンテキストスイッチが許可されていません。 – Daniel