トランザクションのロールバックについて明らかに助けが必要です。Spring/JPA/Hibernate アプリケーションに取り組んでいます。
私にとっては、それらがキャッチされたとしてRuntimeException
も、トランザクションをロールバックしています。私はこれをいくつかのテスト (もう持っていないので残念ながらここに置くことはできません) と測定値から推測します。
しかし、次のコードで別の動作が発生しています。
public class Service implements IService {
@Transactional
public void test()
{
// ...
try {
throw new RuntimeException();
} catch (RuntimeException re) {
}
foo.setBar(barValue);
this.fooDao.save(foo);
}
}
コントローラーからこれを実行した後、bar
パラメーターの変更がデータベースに存在します。これは、トランザクションがロールバックされていないことを意味します。
今質問
キャッチされた runtimeException はロールバックにつながりますか、それとも間違っていますか?