@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);
}
}