前提・実現したいこと
2つのDBを更新時に、Exceptionが発生したらロールバックをしたい。
試したこと
1.Springの設定ファイルを使用するやり方
2.アノテーションを使用するやり方
上記2つの方法は、こちらのサイトを参考にさせていただきました。
http://teqspaces.com/Spring/5
サイト内でRuntimeExceptionと記載のある個所は、例外は全て拾いたいのでExceptionへ直して使用しています。
発生している問題
Exceptionを発生させてもロールバックされていません。
DB操作をするメソッドを直接指定する必要があると調べているうちに分かったのですが、
以下ソースコードのokButtonPushで呼ばれたときのみしか、トランザクションをかけたくありません。
無理でしょうか。
現在は、DefaultTransactionDefinitionを使用して無事にロールバックがされていますが、上記2つのやり方のほうが簡潔しているため、
使用できるなら使用したいです。
構成イメージ(トランザクション処理は書いていません)
Java
1public class コントローラクラス { 2 3 @Autowired 4 JdbcTemplate jdbcTemplate; 5 ~ 省略 ~ 6 7 @RequestMapping(value="done",method=POST) 8 public String okButtonPush(Model model){ 9 try{ 10 dbOpe.updateTb(jdbcTemplate,その他引数); 11 dbOpe.updateTb(jdbcTemplate,その他引数); 12 }catch(Exception e){ 13 return "error"; 14 } 15 } 16} 17 18public class dbOpe(){ 19 20 public static void updateTb(JdbcTemplate temp,その他引数) throws Exception { 21 // 更新値の成形処理 22 ~ 省略 ~ 23 24 try{ 25 jdbcTemplate.update(sql); 26 }catch(Exception e){ 27 throw e; 28 } 29 } 30}
補足情報(FW/ツールのバージョンなど)
SpringFramework
STS 3.9.7
Java 1.8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/09/06 00:58 編集