1
我正在使用春季3与休眠3.5.4交易管理春季3 - 休眠3.5
1-我想在交易中创建一个对象,并将其保存到数据库(成功通过)。 2-我想更新该对象中的某些字段(同一对象),并在另一个事务中更新数据库中的数据(这里是问题)。
问题是,将对象成功保存在第一个事务中,但不会在第二个事务中的数据库中更新它。
这里是代码示例:
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注释的方法“项”。
感谢,
谢谢卡布拉姆, 它的工作,但我不明白你说通过代理拦截器,你能解释一下吗? –
这是一个很好的答案。我不知道这是真的。 –
为了让这个工作,你可以使用编程事务而不是声明式。 –