Композитный фильтр хранилища данных ИЛИ запросJAVA

Программисты JAVA общаются здесь
Anonymous
Композитный фильтр хранилища данных ИЛИ запрос

Сообщение Anonymous »

Я пытался изменить существующий запрос, использующий следующий фильтр:

Код: Выделить всё

CompositeFilter.and(
eq("firstName", firstName),
ge("lastName" lastName),
lt("lastName", lastName.concat("\uf8ff")))
Запрос работает хорошо, но для некоторых пользователей в БД у нас нет полей firstName и LastName, у нас есть другие поля, которые в основном содержат ту же информацию (тег и фамилия);
Я придумал это, чтобы найти тех пользователей, у которых отсутствуют данные:

Код: Выделить всё

CompositeFilter.or(
CompositeFilter.and(
eq("firstName", firstName),
ge("lastName", lastName),
lt("lastName", lastName.concat("\uf8ff"))),
CompositeFilter.and(
eq("tag", firstName),
ge("surname", lastName),
lt("surname", lastName.concat("\uf8ff")))
)
Теперь я удивлен, потому что запрос не извлекает ни одного объекта из хранилища данных. Поддерживается ли такое вложение CompositeFilters?
Теперь, когда я пытаюсь выполнить запросы в GCP с использованием GQL, я вижу, что следующий запрос возвращает результаты:

Код: Выделить всё

SELECT * FROM  `db` WHERE  (tag="Carlos" AND surname>="Palma" AND surname="Palma" AND surname="Palma" AND lastName

Подробнее здесь: [url]https://stackoverflow.com/questions/78313134/datastore-compositefilter-or-query[/url]

Вернуться в «JAVA»