Работает ли GAE только с BigTable (или другой базой данных)? - PullRequest
2 голосов
/ 02 мая 2011

Я хочу сделать довольно простое приложение на GAE с SPRING ROO.

Я не понимаю разницы между Hibernate и JPA (постоянство?), Но я хотел бы знать, что рекомендуется для моего («безопасного») приложения, которое будет работать на GAE ...

Другими словами, вы рекомендуете мне использовать BIGTABLE + HIBERNATE + JPA (это лучшая практика)?

Tkx

Ответы [ 2 ]

2 голосов
/ 02 мая 2011

Вы не сможете использовать Hibernate в GAE.Hibernate можно использовать только поверх реляционной базы данных.Если вы хотите использовать JPA, то используйте реализацию, доступную в GAE и основанную на DataNucleus.Подробнее см. http://code.google.com/intl/fr/appengine/docs/java/datastore/jpa/overview.html.

Обратите внимание, что все возможное с JPA в GAE будет невозможно из-за ограничений хранилища данных GAE.

1 голос
/ 03 мая 2011

GAE работает только с BigTable (он же хранилище данных , см. Обзор хранилища данных ). Он предлагает множество API: от «родного» * ​​1005 * низкоуровневого API до «родного» высокоуровневого (JDO и JPA). Сторонние API-интерфейсы, которые лежат между ними - Objectify, Twig и т. Д. Я рекомендую очень внимательно изучить их. Кроме того, у вас есть специализированные API, такие как API Blobstore .

В случае Hibernate и JPA они оба API-интерфейсы, которые вы можете использовать с большинством реляционных баз данных, но Hibernate также является реализацией, а JPA - нет. JPA нуждается в реализации, и Hibernate является одним из наиболее распространенных. Когда вы используете GAE, вы можете полностью забыть о Hibernate (он недоступен). Также забудьте о том, что большинство функций JPA не поддерживаются из-за нереляционной природы хранилища данных.

GAE JPA использует более старую версию реализации DataNucleus. Это цитата со страницы сообщества DataNucleus :

Платформа Google App Engine (TM) обеспечивает постоянство Java (JDO или JPA) в свое хранилище данных BigTable, используя datanucleus-appengine плагин. это Плагин был разработан Google и является их ответственность. Это в настоящее время работает только с версией 1.1 DataNucleus и, кажется, не активно развивается.

Было бы советом взглянуть на сторонние API ...

...