Ответ 1
У вас не может быть% в NamedQuery
, но вы можете получить его в значении, которое вы назначили параметру.
Как в:
String city = "needle";
query.setParamter("city", "%" + city + "%");
Возможно ли иметь подобное в предложении where в именованном запросе? Я пытаюсь сделать следующее, но получаю исключения
@NamedQuery(name = "Place.getPlaceForCityAndCountryName",
query = "SELECT p FROM Place p WHERE " +
"lower(p.city) like :city and " +
"lower(p.countryName) like :countryName");
Я попробовал добавить%, как это было бы в обычном SQL, но получить компиляцию исключений.
Любые указатели очень благодарны!
Спасибо
У вас не может быть% в NamedQuery
, но вы можете получить его в значении, которое вы назначили параметру.
Как в:
String city = "needle";
query.setParamter("city", "%" + city + "%");
Вы также можете использовать функцию CONCAT
@NamedQuery(name = "Place.getPlaceForCityAndCountryName",
query = "SELECT p FROM Place p WHERE " +
"lower(p.city) like CONCAT(:city,'%')");
@Query("select c from Curso c where c.descripcion like CONCAT(:descripcion,'%')")
List<Curso> findByDescripcionIgnoreCase(@Param("descripcion") String descripcion);