【事務】【spring boot】 調用 本service中的方法 / 調用同一個類中的方法導致事務回滾失敗的問題


 

調用本類中的方法,事務回滾失敗的問題。

 

錯誤調用方式:

@Service public class BaseServiceImpl implements BaseService { @Override @Transactional public void saveBaseInfo() { BaseRequestBean baseRequestBean = new BaseRequestBean(); saveA(baseRequestBean); saveB(); } private void saveA(BaseRequestBean baseRequestBean){ baseDao.insert(baseRequestBean); } private void saveB(){ base222Dao.insert(); } }

 

錯誤原因:

調用方法saveA  和  saveB  是通過 實例對象調用的,而非Spring代理的Bean。

 

 

 

正確調用方法:

@Service public class BaseServiceImpl implements BaseService { @Autowired BaseServiceImpl baseService; @Override @Transactional public void saveBaseInfo() { BaseRequestBean baseRequestBean = new BaseRequestBean(); baseService.saveA(baseRequestBean); baseService.saveB(); } private void saveA(BaseRequestBean baseRequestBean){ baseDao.insert(baseRequestBean); } private void saveB(){ base222Dao.insert(); } }

 

原因:

通過注入Bean調用,即可。


免責聲明!

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



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