Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据存储—具有自己类型的Java类_Java_Google App Engine_Google Cloud Datastore - Fatal编程技术网

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

数据存储—具有自己类型的Java类,java,google-app-engine,google-cloud-datastore,Java,Google App Engine,Google Cloud Datastore,我想创建一个类类型,它有n个与成员类型相同的子类和一个与成员类型相同的父类。每个子类将有n个子类和一个父类。如果我将此模型保留在数据存储中,是否会在资源方面花费高昂?因为每个孩子都有n个孩子,以此类推 说 我还必须能够得到一个人类物体在任何时候的孩子数量,以及他们孩子的数量 所以,将这种类型存储在数据存储中会为每个子对象创建新的实体吗?还是会引用人类对象的实体并重用它 如果我的问题解释性不够强,我可以对我的问题多加解释。如有任何帮助/建议,将不胜感激。谢谢一般来说,答案是否定的,只要您使用键来建

我想创建一个类类型,它有n个与成员类型相同的子类和一个与成员类型相同的父类。每个子类将有n个子类和一个父类。如果我将此模型保留在数据存储中,是否会在资源方面花费高昂?因为每个孩子都有n个孩子,以此类推

我还必须能够得到一个人类物体在任何时候的孩子数量,以及他们孩子的数量

所以,将这种类型存储在数据存储中会为每个子对象创建新的实体吗?还是会引用人类对象的实体并重用它


如果我的问题解释性不够强,我可以对我的问题多加解释。如有任何帮助/建议,将不胜感激。谢谢

一般来说,答案是否定的,只要您使用键来建立实体之间的关系,就可以避免不必要的内联复制。始终对实体关系使用键

您使用的是什么库,JDO,Objectify,低级API?谢谢。我想出来了。
@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);
    }
}