Я новичок в Objectify и пытаюсь реализовать отношения один-ко-многим.У меня есть субъекты Организация и субъект Персона .Организация имеет @Transient
свойство Список contactPeople .Класс Person имеет @Parent
свойство Ключ organizationKey , который я могу установить с помощью установщика.
Я бы хотел сохранить contactPeople в @PrePersist
обработчикеОрганизация.Для этого мне нужно установить родительский ключ в Person.
Wiki здесь говорит: "Вы не можете обновить поля @Id или @Parent в обратном вызове @PrePersist; к этому времени низкоуровневый объект уже был создан с полным ключом, поэтому его можно передавать как необязательный параметр. "
Я не уверен, что это все еще точная информация?Потому что ключ com.google.appengine.api.datastore.Entity
объекта, который я получаю в обработчике PrePersist
, имеет ключ, который буквально говорит "нет-id-пока".
Как бы вы это реализовали?
Спасибо!
Обновление от 17 ноября 2011 года:
В новом Objectify4 мы сможем создавать полуавтоматические отношения, подобные этим:
class Beastie {
@Parent
@Load
ParentThing parent;
@Id Long id;
@Load({"bigGroup", "smallGroup"})
SomeThing some;
@Load("bigGroup")
List<OtherThing> others;
@Load
Ref<OtherThing> refToOtherThing;
Ref<OtherThing> anotherRef; // this one is never fetched automatically
}
Здесь находится в стадии разработки проектной документации новой версии.
Это большие новости. Twig Автор, Джон Паттерсон, присоединился к проекту Objectify сегодня.