controller異常手動回滾事物


我們都知道,@Transactional要放在service層,並且只需要放到最外層的方法上就可以了。

controller層使用@Transactional注解是無效的。但是可以在controller層方法的catch語句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();語句,手動回滾,這樣上層就無需去處理異常  

@RequestMapping(value = "/delrecord", method = {RequestMethod.GET})
@Transactional(rollbackFor = Exception.class)
public String delRecord(HttpServletRequest request) {
try {
//省略業務代碼……
} catch (Exception e) {
log.error("操作異常",e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//contoller中增加事務
return failure("操作失敗!");
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM