【发布时间】:2017-03-23 16:07:27
【问题描述】:
我有下面的方法调用层次结构
public class UpdateProcess {
public void startingMethod(List<Object> objects){
for (Object obj : objects) {
method1(obj);
}
}
@Transactional
public void method1(Object obj) {
method2(obj);
}
public void method2(Object obj) {
EmployeeService.updateObject(obj)
}
}
public class EmployeeService
@Transactional
public void updateObject(Object obj) {
return customerDao.update(obj);
}
}
在上述场景中,我的期望是 spring 应该在线程从 Method1 出来时提交事务,或者如果层次结构中的任何地方发生异常,则回滚。
但是一旦在方法2中执行更新,spring就会提交事务。我不明白为什么?
更新:- 即使我将@Transactional 更改为@Transactional(propagation=Propagation.REQUIRES_NEW),它仍然会提交事务。所以没有影响
【问题讨论】:
-
如果您想获得答案,请发布正确的代码。
-
@Kayaman 我已经发布了相关代码。你有什么具体的东西在这里寻找吗?
-
那段代码连编译都不会,所以很明显不是真正的代码,评论也没用。
-
发布一些类而不是一堆随机的方法怎么样。
标签: java spring hibernate transactions spring-data-jpa