問題タブ [java-ee-8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
413 参照

java - Hibernate によってラップされない javax.persistence.OptimisticLockException

@Version (OptimisticLock) を使用して JPA で通常の JEE8 アプリケーションを作成しています。私の DAO は、@Transactional(value = TxType.REQUIRED) でマークされた CDI Bean です。

更新が競合している場合: org.hibernate.StaleObjectStateExceptionはjavax.persistence.OptimisticLockExceptionでラップする必要がありますが、そうではありません。

javax.transaction.RollbackExceptionを受け取りました。原因はorg.hibernate.StaleObjectStateExceptionです。

どうしてそんなことが可能なの?

javax.persistence.OptimisticLockExceptionが予期されていましたか? それはどこにも現れません (すべての例外でチェーンが発生します)。

Wildfly 10 および 14 でテスト済み: hibernate 5.0.10 および 5.3.6

私がやっていることは、子テーブル ActorProperties で Actor を更新することです。Actor は @Version with TimeStamp を持つものです。私はそのようなことをします:

モデルにプロパティに @Version がないため、インクリメントを強制します。

また、私のDAOは次のようになります。