Spring的事务都是定义在业务层,我们一般叫Manager层,有的叫Service层,所以用Spring管理AOP声明事务的话,Manager层的每个方法应该都是在一个事务中的,那如果Manager中的方法调用Manager中的另一个的方法的话,Spring是先开启一个事务,当调用Manager中另外一个方法时是怎么样的呢,是先将当前事务挂起,再开一个事务,当调用结束提交事务,再继续前一个事务呢,还是由始至终都只在一个事务中呢,小弟搞JAVA不久,所以问题可能很简单希望大虾指教,谢谢!
Spring的事务管理也是其于hibernate的事务--程序级事务,hibernate的事务是依赖于hibernate的session。那么像你说的,一个方法调用另一个方法,这是同一个请求里发生的,那如果是基于SessionInView就是发生在一个session里,那么事务应该是共享的。
这个是由你的事务属性决定的,比如required,requiredNew等,如果要支持嵌套事务,要求你的JDBC驱动支持savepoint。