在我的应用程序中,我具有一定的控制流程,如下所示:
DAO object = persistenceManager.getObjectById(DAO.class, id);
...
persistenceManager.deletePersistent(anotherReferenceToObject);
...
DAO aThirdObjectReference = persistenceManager.getObjectById(DAO.class, id);
这些都在不同的范围内,但是
persistenceManager
引用都指向相同的PersistenceManager
。当第三个DAO对象与第二个对象相同时,就会出现问题。
PersistenceManager
愉快地返回刚刚删除的对象,但是在尝试访问或更改它的一部分之前,我需要知道它已删除!我不想关闭pm,因为其他原因使其保持打开状态很重要。是否有任何方法可以判断对象是否是
deletePersistent
的参数? 最佳答案
删除对象后是否正在使用PersistenceManager.flush()?在以编程方式或关闭管理器之前,将不会将任何更改(编辑,创建,删除)提交到数据库。因此,从创建PersistenceManager /上次刷新时起,将以其原始状态访问“已删除”对象。
关于java - JDO PersistenceManager:如何判断getObjectById返回的对象已被删除?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5047499/