Добавление объектов в существующие группы объектов (Java App Engine) - PullRequest
1 голос
/ 07 марта 2011

У меня есть два объекта, давайте назовем их «Пользователь» и «Умение».Когда человек регистрируется на моем сайте, он сохраняется как «Пользователь».У пользователя может быть несколько навыков, они хранятся в виде списка в объекте User, например,

@Persistent @Element(dependent = "true") 
private List<Skill> skills;

Теперь мне нужно определить, как добавить объект Skill в группу сущностей User при создании, так как мне нужно изменить оба объекта в рамках одной транзакции.Когда я создаю объекты Skill, должен ли я как-то предоставлять ключ пользователя для нового объекта Skill?Я был бы признателен за любую помощь, которую я могу получить с этим, спасибо!

Ответы [ 2 ]

0 голосов
/ 08 марта 2011

(для JDO) Если это отношение , ваше умение должно содержать члена типа user, скажем

@Persistent
private User owner;

и пользователь содержит

@Persistent(mappedBy="owner")
private List<Skill> skills;

поэтому, когда вы создаете новый навык, передайте пользователя-владельца в конструктор. новый навык (someUser) и назначьте члену владельца. Как только вы сохраните эту сущность, сопоставление будет выполнено, и теперь доступ к списку skills пользователя приведет к появлению всех навыков, «владельцем» которых является этот пользователь.

Существуют некоторые проблемы с реализацией отношений JDO в ядре приложения, поскольку JDO более ориентирован на реляционные БД. Вы можете найти больше информации об этом в справочной ссылке и в обычном Google.

0 голосов
/ 07 марта 2011

Вам не нужно делать ничего особенного, кроме создания двух объектов в одной транзакции и обеспечения постоянства пользователя. Читать http://code.google.com/intl/fr/appengine/docs/java/datastore/jdo/relationships.html#Relationships_Entity_Groups_and_Transactions

...