Seleccionar página

SELECT LIKE con wildcards en JPA

por | Abr 3, 2009 | General

SELECT LIKE con wildcards en JPA:Si queremos hacer una consulta de un campo de texto y queremos usar %wildcards%m la primera idea es hacer algo como:

[java]Query q = entityManager.createQuery(“SELECT p FROM Pais p WHERE p.nombre LIKE ‘%:nombre%’ “);

q.setParameter(“nombre”, “españa”);[/java]

De esta forma dará un error diciendo que no encuentra el parámetro ‘nombre’. Esto es porque está puesto entre comillas en el ejbql, de forma que lo interpreta como un literal.

Lo correcto sería hacer, haciendo además que no distinga entre mayúsculas y minúsculas

[java]Query q = entityManager.createQuery(“SELECT p FROM Pais p WHERE LOWER(p.nombre) LIKE :nombre “);

q.setParameter(“nombre”, “%spañ%”.toLowerCase());[/java]

Te puede interesar…

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *