Вложенные группы сущностей в хранилище данных HRD - PullRequest
0 голосов
/ 19 марта 2012

Я использую вложенные группы сущностей в хранилище данных механизма приложений Google HRD.

A Все ли C находятся в одной группе объектов (A one)?

Я хочу запросить все C, которые имеют одного и того же родителя A. Как бы я это сделал?

Это не удалось: ВЫБЕРИТЕ * ОТ С, ГДЕ ЯВЛЯЕТСЯ ДАТЧИКОМ («A», 1)

Любой совет?

Тест был выполнен непосредственно в GQL в хранилище данных, независимо от того, я прилагаю фрагмент кода (код Ofy4):

То есть A:

@Entity
@Cache
public class Site implements Serializable {
   private static final long serialVersionUID = 8611281648072797702L;

   @Id
   private Long id;
   private String url;
   ...
}

То есть B:

@Entity
@Cache
public class Accom implements Serializable, HasCapacity {

   @Id
   private Long id;
   @Parent
   private Key<Site> site;
   ...
}

То есть C:

@Entity
@Cache
public class Room implements Serializable, HasCapacity {

   @Id
   private Long id;
   @Parent
   private Key<Accom> accom;
   ...
}

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Согласно документации Google это должно работать.

и http://code.google.com/appengine/docs/python/datastore/queries.html

Запросы предков

Вы можете отфильтровать запросы хранилища данных к указанному предку, чтобы в результатах содержались только объекты, содержащие этого предка. Другими словами, все результаты будут иметь предка как своего родителя, или родителя родителя, и т. Д. Передача None в качестве параметра не запрашивает сущности без предков и возвращает ошибки.

Другие ссылки с полезной информацией: http://code.google.com/appengine/docs/python/datastore/gqlreference.html#Examples http://code.google.com/appengine/docs/python/datastore/entities.html

0 голосов
/ 22 марта 2012

Проблема решена:

Проблема заключалась в том, что при создании C родительский ключ был создан неправильно. Родительский ключ для C был K (B), и предполагается, что это K (A, B), всегда содержащий родителя.

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

...