Проблема при удалении объекта, который имеет зависимый объект "Set"
У меня есть родительский объект, который имеет набор дочерних объектов, как показано ниже:
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, что приводит к появлению вышеупомянутого исключения, когда дочерние объекты в Set сами удаляются. Кто-нибудь знает, как решить эту проблему?
К вашему сведению, когда я удаляю родительскую сущность, я использую pm.deletePersistent() в транзакции.
Спасибо
2 ответа
Если это не помогает, есть другое решение. Если вы используете eclipse, выполните Refactor -> Rename в своем классе и перезапустите код. Это должно избавить от устаревшей информации в хранилище данных и позволит вам начать с нуля без проблем. С уважением, Джон Гош
Может быть, вы просто вызываете pm.deletePersistent(objectFoo), а затем в коде, вызывающем pm.makePersistent(objectFoo). Я делал это и получал сообщение об ошибке выше. С уважением, Джон Гош