QueryDSL привязка SetPath с любым () не применяется? - SpringBoot - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть эта привязка, которая обычно содержит для значений, которые передаются через URL, получить параметры / запросы, потому что для поиска всех атрибутов мне не нужно точно равное значение:

bindings.bind(String.class)
            .first((SingleValueBinding<StringPath, String>) StringExpression::containsIgnoreCase);

Затем я применяю привязка переопределения для исключительных случаев, когда я хочу точное значение attibute, используя этот код впоследствии:

bindings.bind(entity.createdBy).all((path, value) -> Optional.of(path.in(value)));

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

Но когда я применяю это переопределение к атрибуту SethPath (список / набор) (бывшие пользователи), я использую any (), а затем строковый атрибут для ex , username, он не переопределяет первую привязку строки:

bindings.bind(entity.someAttribbute.users.any().username).all((path, value) -> Optional.of(path.in(value)));

Этот атрибут Set, используемый с any (), чтобы я мог получить его дочерний атрибут String username, не работает.

Могу ли я добиться того же эффекта в первом примере для второго, передавая атрибут Set в его строку?

Я мог бы удалить привязку firs и сделать это для каждого поля / атрибута, но мне хотелось бы мой способ работы для Set, как в первом примере, который работает.

Кто-нибудь может мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...