2011-06-05 145 views
0

我有有一组“子”实体的“父”实体,具体如下:问题删除具有相关的实体“设置”实体

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在一组具有相关属性,这会导致上述异常,当在设置儿童实体本身出现了“孩子”对象之前删除“父”实体删除。有谁知道如何解决这个问题?

仅供参考当我删除父实体我在事务中使用pm.deletePersistent()。

感谢

回答

0

难道说你只是在代码中调用pm.makePersistent(objectFoo)调用pm.deletePersistent(objectFoo),然后以后。我正在这样做,并获得上述错误信息。问候,约翰戈奇

0

如果这不能解决它还有另一种解决方案。如果你使用eclipse,在你的类上做一个Refactor - > Rename并重新运行你的代码。这应该摆脱数据存储中陈旧的信息,让你从头开始,没有问题。此致John Goche