删除具有依赖“Set”实体的实体时出现问题

时间:2011-06-05 23:52:12

标签: java google-app-engine jdo

我有一个“父”实体,它有一组“子”实体,如下所示:

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()。

由于

2 个答案:

答案 0 :(得分:0)

可能是你只是调用pm.deletePersistent(objectFoo)然后调用pm.makePersistent(objectFoo)的代码。我这样做并得到上面的错误消息。此致,John Goche

答案 1 :(得分:0)

如果这不能解决问题,还有另一种解决方法。如果你正在使用eclipse做一个Refactor - &gt;在您的课程上重命名并重新运行您的代码。这应该摆脱数据存储区中陈旧的信息,让你从头开始没有问题。此致,John Goche