【发布时间】:2016-09-29 09:54:27
【问题描述】:
当一个对象从数据库中读取并对其进行编辑但在保存过程中时,我会决定是保存还是丢弃数据。但是 JPA/Hibernate 会自动保存编辑后的数据(Auto Flush)。
DB.beginTransaction
try{
MyObject myObj = DB.readMyObject();
myObj.setCurrentTime(System.currentTimeinMills());
MyObject myObj1 = DB.readMyObject();
myObj1.setCurrentTime(System.currentTimeinMills());
// myObj Edited.
// myObj1 Edited.
if(isPermittedToSave()){
DB.persist(myObj);
}
DB.persist(myObj1);
DB.commitTransaction();
} Catch(Exception e) {
DB.rollbackTransaction();
}
我会一直坚持“myObj1”。所有这些过程都必须在单个事务下运行。
我应该怎么做才能禁用 JPA/Hibernate 的这种行为。该解决方案还应该能够执行 Lazy Fetch 并更新“myObj”。
【问题讨论】: