-1
當從DB讀取並編輯了對象但保存過程中的對象時,我會決定是保存還是丟棄數據。但JPA/Hibernate會自動保存編輯後的數據(Auto Flush)。JPA-Hibernate保存未保存的數據
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」。
親愛的@Antoniossss感謝您的快速回復。你能建議我解決這個問題嗎?謝謝。 – sam
只要開始事務,完成你的工作,然後提交,如果你想保留更改或回滾,如果你想放棄它們。 – Antoniossss