Spring Boot+mybatis使用@Transation無効
2134 ワード
プロジェクトの新規作成中に異常が発生したらロールバックし、service実現方法に@Transactionコメントを使用して失効します.
解決:
1,controllerでtry{}catchを使って異常を捕捉する
2,service実現に@Transationコメントを使う
制御装置
@Transaction(rollbackFor=Exception.class)設定に何か異常があったら、デフォルトでは、springはuncheckedに異常なことを繰り返す;checked異常であればロールバックしません.
参考: https://blog.csdn.net/flyaway86/article/details/81181346
転載先:https://www.cnblogs.com/gczmn/p/10405100.html
解決:
1,controllerでtry{}catchを使って異常を捕捉する
2,service実現に@Transationコメントを使う
制御装置
@RequestMapping(value = "/add",method = RequestMethod.POST)
@ResponseBody
public Result add(HttpServletRequest request, @RequestBody User user){
Result result = new Result();
try{
result = service.insert(user);
}catch (Exception e){
logger.error(" ", e);
}
return result;
}
サービス: @Transaction(rollbackFor=Exception.class)設定に何か異常があったら、デフォルトでは、springはuncheckedに異常なことを繰り返す;checked異常であればロールバックしません.
java Error RuntimeException( ,1/0) unchecked ,
java.lang.Exception Checked Exception, IOException、TimeoutException
@Override
@Transactional(rollbackFor = Exception.class)
public Result insert(User user){
Result result = new Result();int result = userMapper.insert(user);return result;
}
まとめ:異常捕獲はControllerで行い、Service層の中で@Transactionは異常が発生した時に正常にロールバック操作ができます.参考: https://blog.csdn.net/flyaway86/article/details/81181346
転載先:https://www.cnblogs.com/gczmn/p/10405100.html