手工提交事務

@Resource
private PlatformTransactionManager bankTransactionManager;
public void addNotagAndAccount(AccountB account) throws Throwable {

    TransactionStatus status = null;
    //事務開始之前設置數據源
    DynamicDataSourceHolder.putDataSourceName(SYSTEM_NAME);
    try {
        DefaultTransactionDefinition def = new DefaultTransactionDefinition();
        def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
        status = bankTransactionManager.getTransaction(def);

        //新增
        addAccountB(account);

        // 提交事務
        bankTransactionManager.commit(status);
    } catch (Throwable e) {
        if (status != null) {
            // 回滾事務
            bankTransactionManager.rollback(status);
        }
        logger.error("插入數據【"+account+"】失敗!",e);
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章