当前位置: 代码迷 >> Java Web开发 >> Spring 事务管理有关问题
  详细解决方案

Spring 事务管理有关问题

热度:1089   发布时间:2016-04-11 00:07:44.0
Spring 事务管理问题
java web 使用ssh框架,在service层上有@Transactional注解,即为了给service类里面的每个方法添加事务。
我现在的疑惑是,Service层中的方法调用dao层中的方法,dao层中的方法调用hibernate的API,如通过获取session,执行对应的SQL等。
在service上添加事务是利用AOP思想,在service层方法执行前已打开session,开启了事务。那再执行service层方法时又再次打开session,这应该不是同一个session,这不就矛盾了了,事务怎么添加到service层方法上来的呢?
我不知道自己哪里理解的错了或者说错了,有哪位大神知道的,给小弟指点一二,不胜感激!

------解决方案--------------------
一般来说

public Session getSession() {
        return sessionFactory.getCurrentSession();
    }


即service层只是想办法取当前session,并不一定每次都重新打开
------解决方案--------------------
楼主3是正解,在service方法中获得的是已经打开的session而不是重新打开的。
  相关解决方案