mybatis 事物

项目中数据访问用的是mybatis,原本用的都是声明式事物,即 @Transactional。spring

最近碰到一个问题,须要事物是在接口A中某一个函数fun()内提交的。sql

刚开始想着把事物声明放到 fun()的方法上声明,发现无效,查了资料发现 @Transactional 是基于AOP实现的,只对对外接口有效,对内部方法无效。编程

spring中是支持声明式事物和编程式事物的,后来就想到用编程式事物。mybatis

一开始想到的是使用sqlSessionFactory,以下app

可是操做过程发现每一个mapper都须要手动获取比较麻烦,关联到一两个mapper还好,mapper多了,操做就比较繁琐了函数

后来查资料发现了 PlatformTransactionManager,使用方法以下orm

功能正常后又查了下资料,发现spring的编程式事物更多的是推荐使用 TransactionTemplate,试了下感受写起来比PlatformTransactionManager 复杂点,但不须要额外的组件注入blog

相关文章
相关标签/搜索