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註釋的方法「項」。
感謝,
謝謝卡布拉姆, 它的工作,但我不明白你說通過代理攔截器,你能解釋一下嗎? –
這是一個很好的答案。我不知道這是真的。 –
爲了讓這個工作,你可以使用編程事務而不是聲明式。 –