Google App Engine支持的数据存储类型

时间:2012-02-05 17:29:09

标签: 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 supported property type.

因此,阅读数据存储指南http://code.google.com/intl/iw/appengine/docs/java/datastore/entities.html使我怀疑您无法存储您创建的类或集合/数组 - 我只能看到对基本类型(int,boolean等)的支持,并且没有提及用户定义的对象或数组\集合。

1-只是为了确定 - 数据存储区是否支持用户类?

2-集合/数组怎么样 - 真的可以说不支持数组吗?    我该如何存储大量用户/数据?

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

http://objectify-appengine.googlecode.com/

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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