Google App Engine Поддерживаемые типы хранилищ данных - PullRequest
1 голос
/ 05 февраля 2012

Кто-нибудь знает, поддерживает ли GAE Datastore API пользовательские классы и \ или коллекции (например, ArrayList и т. Д.)?

У меня есть следующая строка кода:

entity.setProperty("offlineUsers",user._network._offlineUsers);

Где тип свойства - ArrayList класса 'User', который я создал.Эта строка кода выдает следующее исключение:

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 и т. д.) и без упоминания пользовательских объектов или массивов \ collection.

1 - Просто чтобы быть уверенным - правда ли это, что хранилище данных не поддерживает пользовательские классы?

2- А как насчет коллекций / массивов - неужели не может быть поддержки массивов?
Как я могу хранить большие списки пользователей / данных?

Ответы [ 4 ]

1 голос
/ 14 февраля 2012

"" Объекты имеют именованные свойства, значениями которых могут быть базовые типы или коллекции базовых типов.Более богатые объекты, конечно, могут быть сохранены, если сериализованы как байтовые массивы, хотя это может помешать эффективному запросу с помощью этих свойств."

Кажется, вы можете хранить списки только базового типа в API хранилища данных.

1 голос
/ 10 августа 2012

Если вы используете Objectify, JPA или JDO, вы сможете хранить собственные типы.

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

0 голосов
/ 17 августа 2012

Я не уверен, отвечает ли он на ваш вопрос .. Где-то, читая страницу с запросами и индексами, я увидел это

dataStore.put(Arrays.asList(person, weddingPhoto, babyPhoto, dancePhoto,    campingPhoto));
0 голосов
/ 05 февраля 2012

Вы можете определенно хранить списки - любые Collection Я думаю.Вы можете выполнять поиск в списках после того, как они сохранены, но есть некоторые неожиданные ограничения и поведение.

Вы можете сохранить любой пользовательский класс, который вы можете сериализовать в байты, но вы не будетеиметь возможность индексировать их для поиска по их членам или что-либо еще.

...