Spring Boot+Mybatis Plusでのビジネスノート
1463 ワード
最初の方法(データベースを操作するコードを省略しました)を使ってMybatisを操作します. Plusの事務は、異常が発生してcatchに入ったら、データベース操作のロールバックを実行しないで、Noを報告します. トランジット aspect-managed Transation Storts in scopeのエラーは第二種類に修正して正常に事務管理とロールバックができます.
この状況に関する説明を見ました.
@Transactionはaopエージェントを触発しなければ発効しないので、public方法ではなく、事務を実行しない、public方法は本クラスで引用され、事務も実行しない.
第一の方法:
@PostMapping("/save1")
public boolean action01() {
return action00();
}
@PostMapping("/save2")
public boolean action02() {
return action00();
}
@Transactional
private boolean action00() {
String result = true;
try {
System.out.println(1/0);
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
result = false;
}
return result;
}
第二の方法:@PostMapping("/save1")
@Transactional
public boolean action01() {
boolean result = action00();
if (!result){
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return result;
}
@PostMapping("/save2")
@Transactional
public boolean action02() {
boolean result = action00();
if (!result){
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return result;
}
private boolean action00() {
String result = true;
try {
System.out.println(1/0);
} catch (Exception e) {
result = false;
}
return result;
}