手工調用Transaction

除了用 @Transactional 外還可以手工調用

PlatformTransactionManager transactionManager = (PlatformTransactionManager)SpringBeanUtil.getBean(PlatformTransactionManager.class);
        DefaultTransactionDefinition transactionDefinition = new DefaultTransactionDefinition();
        transactionDefinition.setPropagationBehavior(Propagation.REQUIRED.value());
        TransactionStatus transaction = null;

        Object result;
        try {
            transaction = transactionManager.getTransaction(transactionDefinition);
           // 業務代碼
            transactionManager.commit(transaction);
            
        } catch (Exception ex) {
            if (null != transaction && !transaction.isCompleted()) {
                transactionManager.rollback(transaction);
            }

            throw ex;
        } finally {
            if (null != transaction && !transaction.isCompleted()) {
                transactionManager.rollback(transaction);
            }

        }

 

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