有没有人知道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-集合/数组怎么样 - 真的可以说不支持数组吗? 我该如何存储大量用户/数据?
答案 0 :(得分:1)
“”实体已命名属性,其值可以是基本类型或基本类型的集合。当然,如果序列化为字节数组,则可以存储更丰富的对象,尽管这可能会阻止这些属性的有效查询。 “
您似乎只能在datastore api中存储基本类型的列表。
答案 1 :(得分:1)
如果您使用Objectify,JPA或JDO,您将能够存储自己的自定义类型。
答案 2 :(得分:0)
你绝对可以存储列表 - 我认为任何Collection
。您可以在存储后在列表中进行搜索,但存在一些意外的限制和行为。
当然,您可以存储可以序列化为字节的任何用户定义的类,但是您无法将它们编入索引以搜索其成员或任何内容。
答案 3 :(得分:0)
我不确定它是否回答了你的问题.. 一些在阅读查询和索引页面时我看到了这个
dataStore.put(Arrays.asList(person, weddingPhoto, babyPhoto, dancePhoto, campingPhoto));