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