问题描述
- Spring MVC + hibernate service层和dao层
-
Spring MVC + hibernate service层和dao层 方法头上都加上@Transactional会识别哪个service层:
@Override
@Transactional
public Future save(UserVO userVO) {
this.myUserDao().saveUser(user);
...dao层:
@Override
@Transactional(propagation=Propagation.REQUIRES_NEW)
public void saveUser(User user) {
save(user);
...
解决方案
这个无关识别哪个问题。 比如你上面的service层 propagation为Propagation.REQUIRED,而dao层的propagation=Propagation.REQUIRES_NEW。dao层执行的时候重新生成一个新的事务,service层的事务将会挂起,当dao层方法执行完后,service挂起的事务将被激活。
实际中,不会dao层和service层都加事务,一般都加载service层。
时间: 2024-09-17 03:47:45