[英]Transaction management spring 3 - hibernate 3.5
我正在将Spring 3与Hibernate 3.5.4结合使用
1-我想在事务中创建一个对象并将其保存到数据库(成功通过)。 2-我想更新该对象(同一对象)中的某些字段,并在另一个事务中在DB中更新(这就是问题所在)。
问题是,在第一个事务中成功保存了对象,但是在第二个事务中却没有更新该对象。
这是代码示例:
public String entry(String str){
Bill b = create(str);
b = update(b);
b = updateAgain(b);
return "DONE";
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)
public Bill create(String num){
Bill bill = new Bill();
bill.setBillNumber(num);
baseDao.saveObject(bill);
return bill;
}
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)
public Bill update(Bill bill){
bill.setRetailAmount(152.0);
baseDao.saveObject(bill);
return bill;
}
注意:我不想将@transactional注释放在方法“ entry”上。
谢谢,
如果在同一类中的方法上调用,则注释不会生效。 AOP无法通过代理对其进行拦截。 将输入方法移到类之外。
编辑:Spring通过带有代理或子类的注释驱动的AOP启用事务注释。 与代理一起启用时,您的代理不在本地方法调用中。 这篇博客文章对图片有很好的解释。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.