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层。