spring+springmvc+mybatis配置多数据源,事务回滚出现问题。

chengp... 2015-10-13 02:10:04
spring+springmvc+mybatis配置多数据源,事务回滚出现问题。
直接贴代码,请大神帮忙解答一下。
项目结构
配置文件


现在问题是在service里面分别用两个数据源往数据库插入数据,只有数据源1回滚,数据源2没有回滚,当屏蔽掉事务配置transactionManager1及事务注解驱动再分别用两个数据源往数据库插入数据,数据源2回滚了,数据源1没有回滚,目前问题定位在事务配置这里,请大神解答一下怎么回事,需要怎么配置?
以下为serivce代码
...全文
2163 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lavender136 2018-12-20
  • 打赏
  • 举报
回复
在使用@Transaction时加入value=你使用的数据源对应的事务管理器
一言即诺 2018-02-28
  • 打赏
  • 举报
回复
1.定义两个DAO分别使用不同的数据源,ADAO连接A数据库,BDAO连接B数据库 2.定义一个Service类,加上Spring注解@Transactional,表示进行事务管理。事务要配置成jta分布式事务。 将ADAO和BDAO注入到Service类里面。 在service类里面创建一个方法,方法里调用ADAO的方法插入数据到A数据库的user表,然后调用BDAO的方法插入数据到B数据库的user表
一言即诺 2018-02-28
  • 打赏
  • 举报
回复
http://blog.csdn.net/gaoshili001/article/details/79378902#insertcode 可以参考一下
qq_36519226 2017-07-31
  • 打赏
  • 举报
回复
去掉try catch 直接在方法上throws
larry_seven 2017-04-03
  • 打赏
  • 举报
回复
引用 8 楼 discoveryhl 的回复:
[quote=引用 7 楼 discoveryhl 的回复:] 可以参考http://liuu.iteye.com/blog/973218 配置多数据源 参考http://blog.csdn.net/quzishen/article/details/5803721 解决多数据源回滚问题
错了,如果一个方法中有多个不同数据源的事务,回滚还是可能出问题[/quote] 单个services可以指定多个事务 管理器,是不是就能替代JTA, 有没有大神回答下?
larry_seven 2017-04-03
  • 打赏
  • 举报
回复
如果需要保证Mapper1和Mapper2两个任何一个插入失败两个都回滚,那么这是跨库事务,要用JTA 如果你本意只是Mapper1和Mapper2哪个插入失败,回滚失败的那个,只需要在service中分开两个方法调用Mapper1和Mapper2,并指定不同的事务管理器。然后在contorol中调用这两个services方法即可。 目前你的测试结果由于不是跨库事务,然后该service方案只会找到默认第一个事务管理器对应的数据库回滚。
discoveryhl 2016-09-23
  • 打赏
  • 举报
回复 2
引用 7 楼 discoveryhl 的回复:
可以参考http://liuu.iteye.com/blog/973218 配置多数据源 参考http://blog.csdn.net/quzishen/article/details/5803721 解决多数据源回滚问题
错了,如果一个方法中有多个不同数据源的事务,回滚还是可能出问题
discoveryhl 2016-09-23
  • 打赏
  • 举报
回复
可以参考http://liuu.iteye.com/blog/973218 配置多数据源 参考http://blog.csdn.net/quzishen/article/details/5803721 解决多数据源回滚问题
qq_36208368 2016-09-22
  • 打赏
  • 举报
回复
我也遇到这个问题,楼主怎么解决的
tony4geek 2015-10-13
  • 打赏
  • 举报
回复
tony4geek 2015-10-13
  • 打赏
  • 举报
回复
chengp... 2015-10-13
  • 打赏
  • 举报
回复
引用 2 楼 sjlzcj 的回复:
再一个 spring的 多数据源也不是这样玩的,,百度吧 有例子

有demo吗?
sjlzcj 2015-10-13
  • 打赏
  • 举报
回复
跨数据库的事物,你要去查查 JTA 的资料
sjlzcj 2015-10-13
  • 打赏
  • 举报
回复
再一个 spring的 多数据源也不是这样玩的,,百度吧 有例子

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧