「Spring」トランザクションを実装するサンプル

2020年11月2日

説明
1.DefaultTransactionDefinition
TransactionDefinition インターフェースのデフォルト実装。
Bean スタイルの構成と適切なデフォルト値(PROPAGATION_REQUIRED、ISOLATION_DEFAULT、TIMEOUT_DEFAULT、readOnly = false)を提供します。
2.PlatformTransactionManager
アプリケーションは TransactionTemplate または AOP による宣言型トランザクション境界のいずれかで動作します。
サンプルコード

@Autowired 
      PlatformTransactionManager txManager;

    public void insertData(Locale locale, String empInfo) {

        // トランザクション管理の開始
        DefaultTransactionDefinition dtd = null;
        TransactionStatus ttStatus = null;


        try {
                dtd = new DefaultTransactionDefinition();
                dtd.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
                ttStatus = txManager.getTransaction(dtd);
               
            // DB操作 somecode

            // コミット操作
            txManager.commit(ttStatus);

        } catch (Exception e) {
            // ロールバック
            txManager.rollback(ttStatus);
        }   
    }

 

SpringMVC

Posted by arkgame