Java 谷歌应用引擎支持的数据存储类型

Java 谷歌应用引擎支持的数据存储类型,java,google-app-engine,entity,google-cloud-datastore,Java,Google App Engine,Entity,Google Cloud Datastore,有人知道GAE数据存储API是否支持用户创建的类和\或集合(例如ArrayList等) 我有以下代码行: entity.setProperty("offlineUsers",user._network._offlineUsers); 其中,属性类型是我创建的“用户”类的ArrayList。这行代码引发了以下异常: java.lang.IllegalArgumentException: offlineUsers: com.example.computeroom.User is not a sup

有人知道GAE数据存储API是否支持用户创建的类和\或集合(例如ArrayList等)

我有以下代码行:

entity.setProperty("offlineUsers",user._network._offlineUsers);
其中,属性类型是我创建的“用户”类的ArrayList。这行代码引发了以下异常:

java.lang.IllegalArgumentException: offlineUsers: com.example.computeroom.User is not a supported property type.
因此,阅读《数据存储指南》会让我怀疑您无法存储您创建的类或集合/数组-我只能看到对基本类型(int、boolean等)的支持,而没有提到用户定义的对象或数组\集合

1-只是为了确定-数据存储不支持用户类是真的还是假的

2-关于集合/数组呢-是否真的不支持数组?

我应该如何存储大量的用户/数据列表

我想,你绝对可以存储列表-任何
集合。存储列表后,您可以在列表中进行搜索,但存在一些意外的限制和行为

当然,您可以存储任何可以序列化为字节的用户定义类,但您将无法对它们进行索引以搜索其成员或任何内容。

““”实体具有命名属性,其值可能是基本类型或基本类型的集合。当然,如果将更丰富的对象序列化为字节数组,则可能会存储这些对象,尽管这可能会阻止通过这些属性进行有效查询。"


似乎您只能在数据存储api中存储基本类型的列表。

如果您使用Objectify、JPA或JDO,您将能够存储自己的自定义类型


我不确定它是否回答了你的问题。。 在阅读查询和索引页面时,我看到了一些

dataStore.put(Arrays.asList(person, weddingPhoto, babyPhoto, dancePhoto,    campingPhoto));

谢谢Riley,这肯定是有道理的,它将得到支持。我对抛出的异常感到困惑(我将检查它,然后看看是什么原因导致它)而且在指南中没有提到对象和集合…是的…它在指南中的某个地方提到了它,但我也不能很快找到它。奇怪:你可以存储数据存储的本机类型的集合。你看到的错误是由自定义“用户”引起的“键入,而不是按ArrayList。你必须明确地将其序列化为一个Blob值。这个答案和我发布的答案有什么区别?还可以存储序列化对象的列表。