今天在处理一个事务嵌套,出现了的问题:
public class test {
@AutoWired
private UserService userService
@Transactional
public void insertDB(){
userService.update(User);
//还有其它的数据库处理
}
}
public class UserService{
@Transactional
public update(User user){
hibernateDao.update(user)
}
}
问题所在:hibernateDao.update(user)并没有使用insertDB里的事务,而是新建了一个自己的事务,这样就有违背本意:应该是insertDB整个方法执行完才提交事务的
解决方案:把insertDB的事务放到test 类上
@Transactional
public class test {
public void insertDB(){
userService.update(User);
}
}
原因:具体的原因我不太清楚,如果有清楚的欢迎留言指导一下~