【发布时间】:2017-05-02 10:46:56
【问题描述】:
我正在执行一项任务,以使代码具有事务性。我在一段时间内遇到了关于只读事务的这个问题,而且我在互联网上找到的任何一个建议都没有奏效。 (Spring和hibernate集成项目)
这是我的只读事务方法
@Transactional(propagation=Propagation.REQUIRES_NEW, readOnly=true
,rollbackFor=Exception.class)
public void
editInternationalExportConsigment(InternationalExportConsignmentFormWrapper
exportConssi (){}
在这个方法中,发生了一个翻译进程。进程从数据库中获取(选择)数据并设置为对象的位置
Contact contact =inquiry.loadCustomerContactById(consignmentVO.getCustomerContactId().intValue());
if (contact != null && contact.getCity() != null) {
consignment.setOrgin(contact.getCity().getCountry());
consignment.setUniqueOriginCountry((contact.getCity().getCountry()!=null)?contact.getCity().getCountry().getId():null);
consignment.setOrginCity(contact.getCity());
}
中间没有任何更新或插入查询运行,只有选择。但是在这段代码 sn-p 执行结束时,它将数据提交到 DB(无论设置为 setter 方法的值将持续到 DB 中)
谁能告诉我这里发生了什么问题。您的反馈将非常有用。
【问题讨论】:
标签: java spring hibernate transactions