Проблема при удалении объекта, который имеет зависимый объект «Set» - PullRequest
0 голосов
/ 06 июня 2011

У меня есть «Родительская» сущность, которая имеет Набор «Дочерних» сущностей следующим образом:

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, что приводит к появлению вышеупомянутого исключения, когда сами дочерние объекты в наборе удаляются. Кто-нибудь знает, как решить эту проблему?

К вашему сведению, когда я удаляю родительскую сущность, я использую pm.deletePersistent () в транзакции.

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 января 2012

Если это не помогает, есть другое решение.Если вы используете eclipse, выполните Refactor -> Rename в вашем классе и перезапустите код.Это должно избавить от устаревшей информации в хранилище данных и позволить вам начать с нуля без проблем.С уважением, Джон Гош

0 голосов
/ 27 января 2012

Может быть, вы просто вызываете pm.deletePersistent (objectFoo) и затем позже в коде, вызывающем pm.makePersistent (objectFoo).Я делал это и получал сообщение об ошибке выше.С уважением, Джон Гош

...