Объективировать фильтр запроса по списку в сущности содержит параметр поиска

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

с помощью объективации - мне нужно найти все мероприятия, на которые назначен конкретный сотрудник.

есть ли простой способ отфильтровать запрос, если он содержит параметр - своего рода противоположность запросу в

... быстрый псевдокод

findAll(Employee employee) {
  ...
  return ofy.query(Event.class).filter("employees.contains", employee).list();
}

буду очень признателен за любую помощь


я пытался просто сделать filter("employees", employee) после просмотра этого http://groups.google.com/group/objectify-appengine/browse_thread/thread/77ba676192c08e20- но, к сожалению, это возвращает мне пустой список

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


позвольте мне добавить одну вещь,

приведенный выше запрос на самом деле не то, что он есть, я просто использовал его, потому что я не думал, что это будет иметь значение.

Сотрудник и События находятся в той же группе сущностей, что и Бизнес в качестве родителя

Фактический запрос, который я использую, следующий

ofy.query(Event.class).ancestor(businessKey).filter("employees", employee).list();

К сожалению, он по-прежнему возвращает пустой список - имеет ли предок (ключ) в там испортить фильтр?


поле "Сотрудники" не было правильно проиндексировано.

Я добавил файл datastore-indexes для создания составного индекса, но первоначально тестировал значение, которое я добавил до того, как поле сотрудников было проиндексировано, это была какая-то глупость, которую я делал — просто наличие индекса для «бизнеса». поле и поле «сотрудники» все исправили. файл datastore-indexes оказался не нужным, после его удаления и повторной попытки все заработало нормально.

7
задан sean christe 28 March 2012 в 04:05
поделиться