我有一个“父”实体,它有一组“子”实体,如下所示:
class Parent {
@Persistent @Element(dependent = "true")
private Set<Child> children;
}
当我删除“父”实体时,我得到以下异常:
javax.jdo.JDOUserException: Cannot read fields from a deleted object
FailedObject:com.google.appengine.api.datastore.Key:Parent("1000345345456567676")/Child(2)
似乎JDO在依赖的Set属性中删除“Child”对象之前的“Parent”实体,这会导致在Set中的Child实体本身被删除时出现上述异常。有谁知道如何解决这个问题?
当我删除父实体时,我在事务中使用pm.deletePersistent()。
由于
答案 0 :(得分:0)
可能是你只是调用pm.deletePersistent(objectFoo)然后调用pm.makePersistent(objectFoo)的代码。我这样做并得到上面的错误消息。此致,John Goche
答案 1 :(得分:0)
如果这不能解决问题,还有另一种解决方法。如果你正在使用eclipse做一个Refactor - &gt;在您的课程上重命名并重新运行您的代码。这应该摆脱数据存储区中陈旧的信息,让你从头开始没有问题。此致,John Goche