В приложении Google App Engine, у меня есть эта модель:Без учета свойств при сохраняющихся бесхозный объект отношение JDO (GAE)
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Message {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private Date timestamp;
@Persistent
private String text;
@Unowned
@Persistent(defaultFetchGroup = "true")
private User sender;
...
}
Модель имеет @Unowned
отношение к отправителю, так как пользователь может существовать независимо от сообщение.
Что я хочу сделать, это сохранить объекты Message
с частичными объектами User
(например, я заинтересован в сохранении идентификатора пользователя и имени пользователя). Однако в моем классе конечных точек я сохраняю сообщения только в порядке, однако, если я не включаю все поля для данного пользователя в отношение, пользовательский объект обновляется с отсутствующими полями (например, у пользователя больше нет пароля и т. Д. .). Каков наилучший способ добиться того, чего я хочу, без «развращения» исходного объекта?
PS My endpoints метод мертв просто. В основном просто вызывается pm.makePersistent(message);
на сообщение (заданное как параметр метода).
Спасибо! Хотя вы действительно не обращались к моему вопросу, я нашел интересное интересное. Я не знал, что Google не советовал использовать JDO. Я посмотрю на Objectify. –
Я мог бы сказать это по-другому, но то, что я пытался сказать, заключается в том, что объект «Пользователь» в этом случае является отдельным объектом из «Послания». Вы должны создавать и поддерживать объект «Пользователь» отдельно от « Сообщение ". т. е. вам необходимо также сохранить пользователя отдельно. – COBB
Да, я уже это делаю. Пользователи живут полностью отдельно от сообщений (пользовательские объекты создаются при регистрации).Однако, если я даю объект сообщения пользователю (намеренно оставляя свойства конкретного пользователя), исходный объект пользователя изменяется. –