我阅读了有关JDO的GAE文档,但我没有找到适合我的场景的示例。请帮帮我。
我有两个JDO类,如A
和B
。 "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}的主键})
由于
答案 0 :(得分:0)
在我看来,Java | Storing Data | Datastore | JDO | Entity Relationships in JDO | Unowned Relationships的GAE / J文档应该可以帮到你。
由于A
和B
之间的关系是无主的,因此所有A
和B
实例都位于不同的实体组中。因此,您必须执行两个单独的持久性操作来创建/更新/删除B
的实例,并相应地更新A
的相关实例。
这有帮助吗?