發現的實體,我想執行的方法(compareEntities)要求這是目前在數據庫中,剛剛被保存在對象的實體。像這樣的事情在我的DAO,其中EM是EntityManager的:加載數據,避免在持久化上下文
public void save(MyObj myObj) {
MyObj previous = null;
MyObj current = null;
Integer id = myObj.getId();
if (id == null) {
// new
current = em.persist(myObj);
} else {
previous = em.find(MyObj.class, id);
// update
current = em.merge(myObj);
}
compareEntities (previous, current);
}
的問題是,作爲將被保存在實體來源於數據庫和我進行了一些關於它的變化,當我嘗試從數據庫中獲取數據(使用find方法)由於在持久性上下文中找到了實體,因此我獲取了包含更改的數據。如果沒有我對同一事務中的實體所做的更改,是否有任何方法可以獲取數據庫中的數據?
謝謝。
看起來像將整個邏輯移動到db會更好。 –