GAE - различные варианты доступа к хранилищу данных - какой использовать? - PullRequest
1 голос
/ 09 марта 2011

Насколько я знаю, есть следующие варианты хранения доступа к данным:

  • JDO
  • JPA
  • Сущности, свойства и ключи

Какой из них вы используете и почему?Я новичок во всем этом и не знаю, какой из них лучший ... Было бы хорошо, если бы кто-то мог показать мне камни преткновения во всех этих вариантах?

До сих порЯ бы предпочел Enteties, но я не знаю, как эффективно реализовать модель данных?

Спасибо

Ответы [ 2 ]

3 голосов
/ 09 марта 2011

Я избегаю JDO и JPA, потому что они дают разработчикам ложное ощущение, что Datastore - это реляционная база данных.Люди используют JDO / JPA, потому что они знают их из мира SQL, и, насколько я видел, это может быть неоптимальным, потому что Datastore в любой среде, кроме реляционной базы данных / SQL.и использовать API, который является родным.

Таким образом, единственными оставленными параметрами являются низкоуровневый API (сущности, свойства, ключи) или objectify .

  1. При низкоуровневом APIдает вам все возможности хранилища данных, вынуждает вас использовать сущности вместо ваших классов.Таким образом, вы заканчиваете тем, что пишете много стандартного кода, который выполняет копирование между сущностями и вашими объектами.

  2. Objectify, был разработан специально для AppEngine Datastore и внутренне использует низкоуровневый API, поэтому он обладает всеми функциями и скоростью без каких-либо недостатков.Вы действительно должны попробовать.

Обновление:

Есть также другие варианты, похожие на objectify (похожие в том смысле, что они были сделаны специально для хранилища данных):Веточка и SimpleDS.См. Для сравнения: Поиск мнений об использовании Objectify-appengine вместо JDO в GAE-J

0 голосов
/ 09 марта 2011

Существует только один вариант хранения.GAE предлагает JDO и JPA API поверх хранилища данных, но это просто другой способ доступа к хранилищу данных (например, Hibernate, JDO и JDBC - три разных API, которые можно использовать для доступа к СУБД).

...