数据存储 - 具有自己类型的Java类

时间:2014-11-13 17:15:30

标签: java google-app-engine google-cloud-datastore

我想创建一个类型,它具有相同类型的n个子类和一个与成员相同类型的父类。每个儿童班都有n个孩子和一个父母。如果我将此模型保留在数据存储区中,那么它的资源是否昂贵?因为每个孩子都有n个孩子等等。

说,

@PersistenceCapable
public class Human {

    @Persistent
    List<Human> children;

    @Persistent
    Human parent;

    //the getters and setters
    //null checks
    //add child to list
    //add parent
}

public class Test {
    public static void main(String[] args){
    Human parentHuman = new Human();
    Human childHuman = new Human();

    parentHuman.addChild(childHuman);
    childHuman.addParent(parentHuman);

    Human newChildHuman = new Human();
    newChildHuman.addParent(childHuman);
    newChildHuman.addChild(//another child);
    }
}

我还必须能够获得任何时间点的人类对象的子女数量以及子女的子女数量。

那么将这种类型存储在数据存储中是为每个子节点创建新实体还是引用人类对象的实体并重用它?

如果我的问题不够清楚,我可以对我的问题进行更多阐述。任何帮助/建议将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

答案通常是,不,只要您使用密钥来建立实体之间的关系,就可以避免不必要的内联重复。始终将密钥用于实体关系。 For JDO, the specifics can be found here.