objectify v6 - фильтры NOT и IN больше не поддерживаются?Альтернативы? - PullRequest
0 голосов
/ 31 декабря 2018

Документы objectify v6 говорят:

Фильтры NOT и IN не поддерживаются новым SDK.Вы получите ошибку во время выполнения, если попытаетесь использовать ofy (). Load (). Type (Thing.class) .filter ("field! =", Value) или filter ("field IN" values).

Даже если в objectify v5 мы должны избегать использования фильтров NOT или IN такими, какие они есть, похоже, на выходе?

Есть ли информация о том, почему они больше не поддерживаются?Какие-нибудь альтернативные методы для достижения подобного типа запроса?В частности, запрос IN.Что было / было очень полезно, если вы сказали список идентификаторов пользователей, которые вам нужны для запроса чего-либо.

1 Ответ

0 голосов
/ 31 декабря 2018

В любом случае это были просто удобные фильтры, которые были переведены в состав других фильтров.

Операции! = (Не равны) и IN (членство) реализуются путем объединения других фильтров с использованиемИЛИ операция.Первый из них

https://cloud.google.com/appengine/docs/standard/python/ndb/queries#neq_and_in

property != value реализован как (property < value) OR (property > value)

property IN [value1, value2, ...] реализован как (property == value1) OR (property == value2) OR ...

Так что вы можете просто преобразовать все свои фильтры != и IN в этот

...