当前位置:编程学习 > JAVA >>

关于Spring切换数据库的时机

使用Spring用三层结构。 为什么在@Service注解的类(service层)中切换数据库失败? 而在controller层切换数据库才可以呢? 是跟spring事务的设置有关吗?  Spring 事务 --------------------编程问答-------------------- 必须的..这是因为你的service层用了事务控制,为了保证事务的完整性,你必须完整了该个数据源的该次操作,才能切换,明显你需要执行完这个service方法才算是完成一个事务吧...你在action的调用两个方法相当于是两个事务了 --------------------编程问答--------------------
引用 1 楼 shadowsick 的回复:
必须的..这是因为你的service层用了事务控制,为了保证事务的完整性,你必须完整了该个数据源的该次操作,才能切换,明显你需要执行完这个service方法才算是完成一个事务吧...你在action的调用两个方法相当于是两个事务了

那么我在切换数据库的之前,手动起一个事务可以解决问题吗? --------------------编程问答--------------------
引用 1 楼 shadowsick 的回复:
必须的..这是因为你的service层用了事务控制,为了保证事务的完整性,你必须完整了该个数据源的该次操作,才能切换,明显你需要执行完这个service方法才算是完成一个事务吧...你在action的调用两个方法相当于是两个事务了
有些业务逻辑就是要在不同的表空间切换完成的。如果有这个限制,那么Service不就不能完全写业务处理了,还要讲业务处理放到controller层(action层)? 求解释。 --------------------编程问答--------------------
引用 3 楼 haisujiang 的回复:
Quote: 引用 1 楼 shadowsick 的回复:

必须的..这是因为你的service层用了事务控制,为了保证事务的完整性,你必须完整了该个数据源的该次操作,才能切换,明显你需要执行完这个service方法才算是完成一个事务吧...你在action的调用两个方法相当于是两个事务了
有些业务逻辑就是要在不同的表空间切换完成的。如果有这个限制,那么Service不就不能完全写业务处理了,还要讲业务处理放到controller层(action层)? 求解释。

当然可以自己手动控制起事务,不过这个控制比较麻烦而已 --------------------编程问答-------------------- 还是手动控制事务吧 一个方法里有多个表空间切换 功能确实比较复杂 传统的配置没法满足你了
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,