0

Я использую инфраструктуру objectify-appengine для запросов. Вот моя упрощена проблема: Рассмотрим эти 2 класса: -Objectify app engine - запрос встроенных объектов с использованием списка значений

public class Customer { 
    @Id private String email; 
    @Embedded private Account Account = new Account(); // note embedded annotation 
} 

и

public class Account { 
    private String number; //example: 1234 
} 

Следующий запрос работает & дает мне 1 клиента:

Objectify ofy = ObjectifyService.begin(); 
ofy.query(Customer.class).filter("account.number = ", "1234"); 

Вопрос:

Однако, если есть Список значений (номера счетов). Есть ли способ получить их в 1 запросе? Я попытался пропусканием список номеров счетов, как это:

ofy.query(Customer.class).filter("account.number = ", myAccountNumberList); 

Но если не удается говорить: java.lang.IllegalArgumentException: Набор значений не допускается.

Мысли?

ответ

1
filter("account.number IN", theList) 

Заметим, что в только вызывает GAE SDK выдавать несколько запросов для вас, объединяя результаты:

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

От https://developers.google.com/appengine/docs/java/datastore/queries

+0

работ. Спасибо. Да GAE .. IN - присоска. Мне придется переделать модель данных. Маркировка как ответ. – Ravi

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