由于种种原因,项目中需要同时继承mybatis,和 jpa,有个疑问是 使用mybatis 的service 调用
jpa 实现的 service ,事务是否会生效,即 两个service 是否用的同一个事物,事务管理使用spring 的声明式事务,
使用 @Transactional 注解。
可以,jpa和mybatis分别有自己的事务实现,但是再spring环境下jpa的事务会覆盖mybatis的事务
,单数据源情况下,完全可以兼容两者的事务,但是如果你的项目是多数据源,并且扫包不规范的情况下,事务很有可能就失效了,比如同一个mapper被多个数据源扫描到了,这是你的事务管理器上只能标一个名字,虽然你是同一个操作,但是不在被单数据源的事务管理器处理,会导致mybatis事务不生效的问题。所以我不建议采用一个方法中既写mybatis又写jpa 除非你能保证你的项目只是单数据源的。