SELECT LIKE con wildcards en JPA

Abr 3, 2009

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]

Conocimiento Open Source 

Desde siempre intentamos aplicar la filosofía Open Source también con el conocimiento, por ello nació el Blog Open Source, donde nuestros desarrolladores comparten notas, consejos y tutoriales sobre tecnología y desarrollo, soluciones a problemas diarios, bugs o cualquier información que creemos, puede ser interesante.

0 comentarios

Enviar un comentario

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

Blog de Neodoo Microsystems
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles. Puedes encontrar más información en nuestra Política de privacidad y Política de cookies.