Отношения JDO Google App Engine (Java) - PullRequest
0 голосов
/ 01 февраля 2011

Взгляните на первый пример http://code.google.com/intl/sv-SE/appengine/docs/java/datastore/jdo/relationships.html (личные отношения один-к-одному).

Я не совсем понимаю одну вещь.
Если я получу Employee из моего PersistanceManager, получу ли я в это же время ContactInfo или он получит ContactInfo, когда я попытаюсь его использовать?

Если он получит его в одно и то же время, как насчет собственных отношений «один-ко-многим»?
Просто для примера, скажем, у сотрудника есть список, содержащий 100 контактов.
Означает ли это, что я получу все 100 контактов, когда получу своего сотрудника?

Спасибо
// F

1 Ответ

3 голосов
/ 01 февраля 2011

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

Вы можете настроить активную загрузку объекта, используя JDO fetch groups . Стремительная загрузка загрузит все дочерние данные, когда вы загрузите родительский. Это полезно, если вам нужно получить доступ к свойству после транзакции или если вам нужно отправить объект по сети клиенту.

Рекомендуемое чтение:

Группы извлечения

JDO Layer Design

...