6

Я хотел бы знать, что пример очень высок -Как моделировать отношения сущностей в GAEJ?

Как смоделировать отношения в Google App Engine для Java?

-Один ко многим
-many для многих

Я искал повторяющийся в Интернете, и я не нашел ничего о Java все справочники и учебники о Python.

Я понял из этого article что в Python отношения моделируются с использованием ReferenceProperty. Тем не менее, я ничего не нашел об этом классе в ссылке Javadoc.

Кроме того, в этом article они обсуждали следующее:

есть в настоящее время не хватает средств для пользователей Java, в основном из-за относительной новизной платформы Java для App Engine.

Однако, это было написано в 2009 году

В конце концов, я в конечном итоге моделирования отношений, используя предок путь каждого объекта. Я обнаружил послесловие, что этот подход имеет проблемы и ограничивает масштабируемость приложения.

Не могли бы вы направить меня к эквивалентному классу Java классу Python ReferenceProperty? Или вы можете дать мне пример того, как моделировать отношения в AppEngine с помощью низкоуровневого API java datastore.

Заранее за вашу помощь.

ответ

4

Создание связей между сущностями в GAE/J зависит от дб API, который вы используете:

  1. JDO: entity relationships.

  2. JPA: see docs.

  3. Оказать: single-value relationships.

  4. низкоуровневое API: добавить ключ одного объекта в собственность другому лицу: см типы недвижимости .

+0

Thx для вашего ответа. Чтобы быть уверенным, вы имеете в виду следующее: entity.setProperty ("property_name", Key); –

+0

Другой вопрос, пожалуйста, хорошая практика использования низкоуровневого API? Я столкнусь с проблемами в ремонтопригодности и масштабируемости проекта в ближайшем будущем? Thx заранее для вашего руководства. –

+0

1. Да, установить свойство на ключ в порядке. 2. Все высокоуровневые API (JDO, JPA, Objectify) используют низкоуровневый api под капотом. Не будет проблем с масштабируемостью. Поддержание работоспособности - другое дело - вы будете писать много шаблонов. Я предпочитаю Objectify. –

1

Только наконечник. Когда вы определяете модель данных с точки зрения запросов конечных пользователей и соответствующим образом определяете свою модель данных.

Например, возьмем пример магазина, в котором хранятся книги.В традиционном приложении, будет иметь три основные сущности:

-> Книга

-> Client

-> Аренда (чтобы решить многие-ко-многим)

Чтобы отобразить отчет, с которым клиент арендует эту книгу, вы должны отправить запрос на таблицу аренды, таблицу книг и таблицу клиентов.

Однако в GAE это не сработает, потому что операция соединения не поддерживается.

Решение, которое я нашел (может быть, другое решение), состоит в том, чтобы моделировать те же три таблицы, но встраивать определения книг и клиентов в таблицу Rent.

Этот способ, отображающий список книг, которые можно арендовать у кого очень быстро и недорого. Единственный недостаток заключается в том, что если, например, название книги изменяется, я должен пройти через все внедренные объекты. Однако, как часто это происходит в сравнении с запросами только для чтения.

В резюме, подумайте с точки зрения запросов пользователей

+0

Thx, я понял. Я нашел другие статьи в Интернете, обсуждая эту идею, которая доказывает, что это лучшая практика в GAE. –

Смежные вопросы