問題タブ [javax.persistence]
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.
java - javax.persistence.OptimisticLockException VS org.springframework.orm.ObjectOptimisticLockingFailureException
SpringBoot アプリにこのコードがあります。SpringBoot v1.5.14.RELEASE
しかし、私はアプリケーションにこの例外があります:
と の間にはどのような違いがありOptimisticLockException
ますObjectOptimisticLockingFailureException
か? どの例外がアプリケーションをスローするかを知るにはどうすればよいですか?
jpa - try/catch Exception ブロック内で持続する場合の TransactionRequiredException
私はSpringを使用していないので、それは助けにはなりません.Java EE 7だけで、各ステップ(成功または失敗)をログに記録し、結果をDBに保持するバッチジョブ用のステップ監視インターセプターを構築しました。失敗した手順で例外をキャッチし、logQueryOutcome メソッドを呼び出します。例外がスローされると、トランザクションが利用できなくなり、新しいトランザクションを開始できないようです。
注入された MonitoringRepository クラスでは、logStepResults の実装は次のとおりです。
質問のためにコードを単純化しました。私の質問は、このトランザクションが通常のバッチ ジョブ ステップのフローでは正常に機能し、例外がスローされたときに永続化できないのはなぜですか。これに対する回避策はありますか? 例外に dontRollbackOn を使用して Transactional を追加しようとしましたが、すべてのメソッドで REQUIRED または REQUIRES NEW などの TransactionAttribute を試しましたが、うまくいきませんでした。私が取り組んでいるプロジェクトでは、注釈アプローチのみを使用することを余儀なくされているため、現在、セッションを使用したり、エンティティ マネージャーからトランザクションを取得したりすることはできません。これは例外です: