JPA - Запрос критериев - поиск целых чисел с использованием "like"
Привет,
Как я могу применить Integer к запросу String for Criteria Query?
то есть
Predicate predicate = criteriaBuilder.like((Expression) root.get(filterKey),
"%" + filterValue + "%");
Я хочу создать фильтр для компонента dataTable.... и, т.е. для значения ID, я хочу получить фильтр следующим образом:
если я наберу "1", я получу все элементы с идентификатором, содержащим "1" (223122 ID будет по-прежнему верным)
Ответы
Ответ 1
Я не использовал это сам, но этот другой вопрос:
Используя API-интерфейс API JPA 2.0 и причины литья, вызванные ошибкой JPQL в Hibernate
Предлагает использовать .as(String.class)
после root.get(filterKey)
, чтобы выполнить то, что вы хотите.
Если вы используете Hibernate, имейте в виду сообщить ошибки
Ответ 2
Эта проблема решена для меня:
Expression<String> filterKeyExp = root.get(filterKey).as(String.class);
filterKeyExp = criteriaBuilder.lower(filterKeyExp);
Predicate predicate = criteriaBuilder.like(filterKeyExp ,"%" + filterValue.trim().toLowerCase() + "%");