1. 无返回事务
@Resource
private TransactionTemplate transactionTemplate;
@Test
public void testTransactionTemplateWithoutResult() {
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) {
try {
//业务代码
} catch (Exception e){
//回滚
transactionStatus.setRollbackOnly();
}
}
});
}
2. 有返回事务
@Resource
private TransactionTemplate transactionTemplate;
@Test
public void testTransactionTemplateWithResult() {
transactionTemplate.execute(new TransactionCallback<Object>() {
@Override
public Object doInTransaction(TransactionStatus transactionStatus) {
try {
//业务代码
return new Object();
} catch (Exception e) {
//回滚
transactionStatus.setRollbackOnly();
return null;
}
}
});
}
3. 参考文章