在 Google App Engine 应用程序中,我有这个模型:
@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
对象的对象(例如,我只对存储用户 ID 和用户名感兴趣)。在我的端点类中,我可以很好地存储消息,但是,如果我没有在关系中包含给定用户的所有字段,则用户对象会更新为缺少的字段(例如,相关用户不再有密码等.)。在不“破坏”原始对象的情况下实现我想要的最佳方法是什么?
PS 我的端点方法非常简单。基本上只是调用pm.makePersistent(message);
消息(作为方法参数给出)。