GAE一对多关系JDO示例

时间:2013-10-31 08:26:54

标签: java class google-app-engine persistence jdo

我阅读了有关JDO的GAE文档,但我没有找到适合我的场景的示例。请帮帮我。

我有两个JDO类,如AB"A"类与"B"有一对多的关系。这种关系也没有依赖性。 class "A""B"具有以下结构(为了简单起见,我没有使用注释)

class A {

private String name;
private String id; // primary Key
private List<B> b;

..... getter setter
}

class B {

private Key key; // primary Key
private String id; // this is the attribute of the Class A
private String someData;

}

现在我的方案是首先我逐个创建了类"A"对象,然后使用Persistent manager将其保存到数据存储中。对于这个存储“List<B> b”将为null bcz我没有它的数据。

之后,假设我提供的表单包含两个字段,一个用于“"id"”类的A"属性,另一个用于“someData”属性。此用户提供类"id"的一个存储对象的"A"。当用户提交结果时,我必须创建一个类"B"对象并将其保存到数据存储中,并且还必须将其添加到{ {1}}对应的类list of B对象。我希望你明白我想做什么。

现在我的问题是我必须使用什么方法来维护JDO类的这种一对多关系。我必须首先根据表单中提供的"A"检索类"A"对象,并在获取对象后获取"id"类对象并添加"list of B"类对象在列表中,然后保存类"B"对象(因为对象附加到PM自动保存)或其他方法是我只是创建类"A"对象并使用它保存到数据存储下午。

如果仅创建"B"类对象并将其保存到数据存储中,则对该关系持续存在。当我得到类B对象时我简单的单词A类对象具有链接到类“A”对象的所有对象(因为B类具有属性,它是类{{1}的主键})

由于

1 个答案:

答案 0 :(得分:0)

在我看来,Java | Storing Data | Datastore | JDO | Entity Relationships in JDO | Unowned Relationships的GAE / J文档应该可以帮到你。

由于AB之间的关系是无主的,因此所有AB实例都位于不同的实体组中。因此,您必须执行两个单独的持久性操作来创建/更新/删除B的实例,并相应地更新A的相关实例。

这有帮助吗?