2016-12-05 14 views
1

Java 1.8を使用してSpringブートとMavenを使用してバッチジョブを作成しています。データベースがSybase ASE 私のコードをデバッグしようとすると、すべてのデータベースステートメント(挿入、更新など)が実行されているように見えますが、ジョブが完了するまでデータベース内のデータを見つけることができませんでした。 クエリが終了するとすぐにデータベースでレコードを利用できないのはなぜですか? また、ジョブが失敗/例外が発生した場合、データベーストランザクション全体がデータベースに格納されません。スプリングブート - ジョブが完了するまでデータベースの変更が反映されない

誰でもSpringデータベーストランザクションの仕組みを説明できますか?

+0

@transactionalアノテーションを関数に追加しましたか? –

答えて

1

EntityManagerは、トランザクションが完了した後で変更をフラッシュします。データベースの変更を表示する前に、

@Transaction Annotationがメソッドに存在する場合は、これを削除します。しかし、もうトランザクションがないことに注意してください。代わりに、EntityManager.flush()を使用することもできます。

関連する問題