Я пытаюсь создать спецификацию org.springframework.data.jpa.domain.Specification, которую можно было бы использовать для поиска в требуемом столбце. .
Я не понимаю, как сопоставить массивы и спецификации базы данных.
Неработающий фрагмент кода прилагается
Код: Выделить всё
private Specification hasFilters(
List filters) {
return (root, query, cb) -> {
Predicate filterPredicate = cb.disjunction();
if (!CollectionUtils.isEmpty(filters)) {
for (String filter : filters) {
filterPredicate = cb.isNotNull(
cb.function("array_position", Integer.class, root.get("columnName"),
cb.literal(filter))
);
}
}
return filterPredicate;
};
}
Но в итоге это просто не работает, возвращаемые значения не фильтруются.
Любые идеи и предложения будут очень полезны.
Подробнее здесь: https://stackoverflow.com/questions/791 ... es-varchar
Мобильная версия