我想执行一个方法(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 方法)时,我得到了更改后的数据因为实体是在持久化上下文中找到的。有什么方法可以获取数据库中的数据,而无需我对同一事务中的实体所做的更改?
谢谢。