现在基本设置都很好,我开始尝试交易。Struts+Spring+Hibernate注解事务管理器。这是 Action 中的示例代码,将调用一个服务类:
userService.addUser();
这是addUser()
服务类中的方法:
@Transactional(value="deu" )
public void addUser() {
userDao.addUser();
this.addUser2();
}
首先,我调用addUser
了 userDao,它会插入一个用户。其次,我addUser2
在这个服务类中调用了另一个方法。
@Transactional(value="deu" , propagation=Propagation.REQUIRES_NEW )
public void addUser2() {
//should be a new transaction and will not affect the previous one.
//this one will fail but should not affect the previous one.
userDao.addUserFail();
}
而这个会因为 PK 无效而失败。我想第二次调用 ( addUser2
) 会失败,但不会影响前一次调用。但是,没有插入用户。
如果我只打电话:
@Transactional(value="deu" )
public void addUser() {
userDao.addUser();
//this.addUser2();
}
它正在工作,这意味着数据库等基本设置没有错。
任何想法?