如何使用JDO自动替换子实体?

时间:2011-07-14 00:07:47

标签: google-app-engine google-cloud-datastore jdo datanucleus

作为this question的后续,我有一个包含子实体集合的父实体。

更新父实体时,我想将子集合设置为新值,而不必手动删除(可能通过父ID删除)集合中的旧项目。

这样的事情:

parent.set_children(newListOfChildren); 

当我执行上述操作时,新的子实体列表将被保留,但旧的子实体仍然存在。

有没有办法实现这个开箱即用的方法?

我看到的替代方法是擦除父级(擦除所有孩子),然后用新孩子重新创建它,但感觉很狡猾!

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

假设如下:

@Persistent(defaultFetchGroup = "true")
@Join(column = "user_id")
@Element(column = "email")
private List<String> emails;

从那里,您可以初始化您的架构,然后在其他时间查找父对象时,您可以clear()列表并添加新条目。