5

我有一个现有的谷歌应用程序引擎 java 应用程序与 jpa 一起运行,现在我正试图将对象化为许多不同的目的。

当前应用程序具有以下实体表示。

Class Parent{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Key key;

    @OneToMany(cascade=CascadeType.ALL, mappedBy="parent")
    private List<Child> childs = null;
}

Class Child{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Key key;

    @ManyToOne  
    private Parent parent;

}

如何在 Objectify 中获得上述表示?我正在使用objectify4。
我见过@Parent,但在获取父实体时似乎无法直接加载子实体列表?

谢谢,

拉梅什

4

2 回答 2

2

Objectify 使用与关系数据存储和 ORM不同的概念。关系是使用Keys 构建的,不会自动加载。您可以在此处阅读有关 Objectify 中关系建模的信息。这种@Parent关系很特别,与 1:n 或 n:m 关系无关。

所以基本上你有

class Parent {
    Key<Child>[] childs;
}

class Child {
    Key<Parent> parent;
}

然后您将通过 Objectfy 服务获取实体,例如

Parent aParent = ofy.get(aChild.parent);

没有延迟加载的集合。如果你想构造一组对象,你需要明确地去做。

于 2012-08-07T09:09:54.077 回答
1

我为自己的问题找到了解决方案。这是代码。

https://github.com/rameshv1210/objectify-many-to-one/

于 2012-08-11T21:50:41.687 回答