Объективировать и группы лиц - PullRequest
4 голосов
/ 29 августа 2011

Вот вопрос ко всем гуру objectify / app engine:

Я создаю ojectes с отношениями родитель / потомок, сохраняя ключ родительского объекта в потомке.Это хранится в объекте типа Key.Например, скажем, у меня есть объект автомобиля и объекты шин.Объекты шины хранят родительский ключ в переменной типа Key.

@Entity
Public class Tire{
     @Id Long id;
     Key<Car> ParentKey;

     int size;
}

В моем приложении мне нужно получить все шины для данного автомобиля.Я могу сделать это с помощью запроса: Tire tyres = oft.query (Tire.class) .filter ("ParentKey", carKey) .get ();

Это подходящий способ для достижения этой цели?Это вызовет какие-либо проблемы с группами сущностей?Будет ли это эффективно для большого количества автомобилей и шин?

Ответы [ 2 ]

5 голосов
/ 30 августа 2011

Прямо сейчас вы не создаете отношения родитель / потомок, по крайней мере, как это определено механизмом приложений .Ознакомьтесь с документацией: добавление родительских / дочерних отношений может ускорить процесс, поскольку автомобиль и его шины будут храниться вместе физически, но их может быть трудно удалить, если в какой-то момент они больше не нужны.

Чтобы создать отношения родитель / потомок с помощью Objectify, добавьте аннотацию @Parent:

// Use com.googlecode.objectify.Key instead of 
// com.google.appengine.api.datastore.Key
@Parent Key<Car> parentKey;

Теперь, чтобы получить все шины, принадлежащие конкретному автомобилю:

List<Tyre> tires = ofy().query(Tyre.class).ancestor(carKey).list();
1 голос
/ 30 августа 2011

Я использую точно так же - без проблем.

Я не вижу никаких конфликтов с группами сущностей, и он отлично работает для больших групп (по крайней мере, для тысяч сущностей)

P.S. Если вам нужно получить данные, принадлежащие к той же группе - вам не нужно использовать группы GAE. Более того: группы сущностей лучше всего подходят для транзакций, а не для фильтрации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...