Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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

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 在AppEngine数据存储中的列表中存储子类型对象_Java_Google App Engine_Subclass - Fatal编程技术网

Java 在AppEngine数据存储中的列表中存储子类型对象

Java 在AppEngine数据存储中的列表中存储子类型对象,java,google-app-engine,subclass,Java,Google App Engine,Subclass,我正在尝试使用数据存储API创建单个序列对象列表。 (之所以将其放在一个列表中,是因为对象在写入时是有序的——它基本上就像一个美化的日志文件) 我的问题是,我想存储在列表中的东西是我定义的接口/抽象类的子类型 我有一个使用我的SQL的当前存储,如下所示: ID、组ID、序列号、子类的序列化字符串 我希望通过将其推入数据存储,我不必序列化,而是可以存储对象。但我现在有点不确定这是最好的方法 注意。Im使用的是直接数据存储API,而不是JDO/JPA等 我想一个选择是继续序列化-我不清楚AppEng

我正在尝试使用数据存储API创建单个序列对象列表。 (之所以将其放在一个列表中,是因为对象在写入时是有序的——它基本上就像一个美化的日志文件)

我的问题是,我想存储在列表中的东西是我定义的接口/抽象类的子类型

我有一个使用我的SQL的当前存储,如下所示: ID、组ID、序列号、子类的序列化字符串

我希望通过将其推入数据存储,我不必序列化,而是可以存储对象。但我现在有点不确定这是最好的方法

注意。Im使用的是直接数据存储API,而不是JDO/JPA等

我想一个选择是继续序列化-我不清楚AppEngine上对各种序列化方法的支持有多好?我想我可以存储为字节数组-直接使用可序列化接口写入

或者,我可以存储一些主元列表,并将每个对象子类型存储为它自己的实体-我不确定是否能够引用它,以及速度影响?我需要存储大约100种不同的子类型

有人对如何做到这一点有什么建议吗

这似乎是一个非常基本的问题——我认为noSQL数据存储自然不会有问题——但我对整个概念都很陌生——直到现在我还是一个关系数据库人:)

谢谢

更新/编辑

嗯,我刚刚重新阅读了实体/查询等的文档页面。。。我想我可能掉进了关系数据库思考者的陷阱

实体下的一节指出:

注意:数据存储实体是无模式的:与传统关系数据库不同,App Engine数据存储不要求给定类型的所有实体都具有相同的属性,也不要求给定属性的所有实体值都具有相同的数据类型。如果需要一个正式的模式,应用程序本身负责确保实体符合它;pythonsdk为此提供了丰富的数据建模功能库

我认为这意味着我可以将所有子类存储在接口的“实体”引用下,例如

A类扩展到Z类

B类扩展到Z类

将类别A和B保存为实体“Z”。不另存为实体A和实体B

似乎它不在乎大多数财产等完全不同:)

这是正确的吗?为了理智起见,有人能证实这确实是在这种情况下所期望的吗