0

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

我有两个 JDO 类,比如AB"A"类有一对多的关系"B"。这种关系是未欠的,也是不依赖的。类"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"一个一个地创建类对象并使用持久管理器将其保存到数据存储中。对于这个存储“ List<B> b”将是空的,因为我没有数据。

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

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

如果只是创建B类对象并将其保存到数据存储中是持久的关系。当我得到类A对象时,我很简单,类对象是否"list of B"具有链接到类“A”对象的所有对象(因为 B 类具有作为类主键的属性A

谢谢

4

1 回答 1

0

在我看来,Java 的 GAE/J 文档 | 存储数据 | 数据存储 | JDO | JDO 中的实体关系 | 无主关系应该在这里帮助你。

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

这有帮助吗?

于 2013-11-01T10:19:06.450 回答