Учитывая следующую конфигурациюApp Engine: Как сохраняются связанные объекты с использованием объективизации
@Entity
public class A{
…
private List<Key<B>>bees;
…
}
@Entity
public class B{
…
}
Как упорствовать B таким образом, что она принадлежит к коллекции bees
в A? Должен ли я упорствовать дважды? Назад, когда я использую с помощью JPA/JDO с DataNucleus все, что я сделал
A aa = getA();
B bb = createB(…);
aa.getBees().add(bb);
aa.update();
Но объективировать я должен сохраняться дважды? Как и в, я должен сделать
A aa = getA();
B bb = createB(…);
aa.getBees().add(bb.getKey());
ofy().save().entity(bb).now();
ofy().save().entity(aa).now();
Я вручную создаю свои ключи как 'pageKey = KeyFactory.createKey (bookKey, Page.class.getSimpleName(), bookId +" "+ pageNumber)' Так что практически у меня уже есть ключи. Поэтому я предполагаю, что это то же самое, что использовать 'ObjectifyFactory.allocateId()'. Я буквально использую 'Key', а не Long или String. –
Кроме того, следующая строка не компилирует' a.getBees(). Add (b.getKey()); 'Я не могу добавить ключ хранилища данных в объектное обобщение. Вы знаете, как это исправить? tag @ tx802 –
Вы можете преобразовать между собственным хранилищем данных 'Key' и Objectify' Key > 'достаточно тривиально. Это вопрос Java 101, на который легко ответить Javadocs Objectify. – stickfigure