java - queries - jpa like
Llamada nombrada con like en where clause (3)
No puede tener el% en la NamedQuery
, pero puede tenerlo en el valor que le asigna al parámetro.
Como en:
String city = "needle";
query.setParamter("city", "%" + city + "%");
¿Es posible tener un me gusta en una cláusula where en una consulta con nombre? Estoy tratando de hacer lo siguiente, pero estoy recibiendo excepciones
@NamedQuery(name = "Place.getPlaceForCityAndCountryName",
query = "SELECT p FROM Place p WHERE " +
"lower(p.city) like :city and " +
"lower(p.countryName) like :countryName");
Intenté agregar% como lo haría en SQL normal, pero obtengo la compilación de excepciones.
¡Cualquier apuntador muy apreciado!
Gracias
También puedes usar la función 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);