query queries name example consultas java sql jpa named-query

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);