現在設定した「タグ」の技術を使って更新画面を実装しています。
質問があるのですが、
springbootでトランザクションの設定はどのように行いますでしょうか?
経緯として、
2つのテーブルを同一メソッド内で更新する処理があります。
それを@Transactionalを使ってトランザクション処理を実装しようとしていました。
serviceクラス内のメソッドに@Transactionalを設定し、controllerクラスから@AutowiredでserviceクラスをDIしています。またメソッドはpublicです。
いろんな記事を見て、RuntimeExceptionを明示的に起こしてロールバックさせようとしているのですが、DBの値は更新されていました。
参考:https://www.qoosky.io/techs/400f6b6f09
springbootのトランザクション管理について
@Transactionalは実際にうまくいくのでしょうか?また他のやり方で実装した方がいいのでしょうか?オススメのやり方があれば教えていただけますでしょうか?
お願い致します。
Java
1@Transactional 2 public void update(List<Item> iList,Store sDto) { 3 List<Item> tempList = new ArrayList<>(); 4 5 iList.forEach(i -> 6 i.setUsedFlag(true); 7 tList.add(t); 8 }); 9 10 iDao.batchUpdate(tempList); 11 12 sDao.update(sDto); 13 14 throw new RuntimeException(); 15 }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/05 12:04