【发布时间】:2013-02-25 03:41:01
【问题描述】:
现在基本设置都很好,我开始尝试交易。 Struts+Spring+Hibernate注解事务管理器。 这是Action中的示例代码,会调用一个服务类:
userService.addUser();
这是服务类中的addUser() 方法:
@Transactional(value="deu" )
public void addUser() {
userDao.addUser();
this.addUser2();
}
首先,我在 userDao 中调用了addUser,它会插入一个用户。其次,我在这个服务类的另一个方法中调用了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();
}
它正在工作,这意味着像数据库这样的基本设置没有错。
有什么想法吗?
【问题讨论】:
标签: java spring hibernate dao transactionmanager