将对象添加到现有实体组(Java App Engine)

时间:2011-03-07 20:21:51

标签: java google-app-engine entity

我有两个对象,我们称之为“用户”和“技能”。当一个人 登录我的网站,他们被保存为“用户”。用户可能有 多种技能,这些技能作为列表存储在User对象中, 例如

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

现在我需要确定的是如何向用户添加Skill对象 我创建它时的实体组,因为我需要修改其中的两个对象 单笔交易。 当我创建技能对象时,我必须提供用户密钥 某种新的技能对象? 我很感激能得到任何帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

除了在同一事务中创建两个对象,并且使用户持久化之外,您不需要做任何特殊操作。阅读http://code.google.com/intl/fr/appengine/docs/java/datastore/jdo/relationships.html#Relationships_Entity_Groups_and_Transactions

答案 1 :(得分:0)

(适用于JDO) 如果它是owned relationship,你的技能应该包含一个类型为user的成员,让我们说

@Persistent
private User owner;

和用户包含

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

因此,当您创建新技能时,在构造函数 new Skill(someUser)中传递拥有用户并分配给所有者成员。一旦你坚持这个实体,映射就完成了,现在访问用户的技能列表将产生所有技能“所有者”就是这个用户。

在app引擎上实现JDO关系存在一些问题,因为JDO更关注面向数据库。您可以在参考链接和普通的“谷歌”中找到更多相关信息。