miércoles, 25 de agosto de 2010

HIBERNATE HQL


¿Cómo consultar utilizando parámetros con nombres?
Para usar la condición LIKE con un signo "%" para coincidencia de patrones en una consulta HQL con parámetros con nombre requiere algunos ajustes.
Para los que estamos familiarizados con el uso de consultas SQL podríamos pensar que algo así funcionaria:

String query = "from user u where u.name like '%:name%'"
getHibernateTemplate().findByNamedParam(query, "name", str);

Pero no, el resultado fue: org.hibernate.QueryException: char inesperada: "% error".
Lo que realmente funcionó fue poner el "%" signos en el parámetro, para que nos quede algo así:

String query = "from user u where u.name like :name"
getHibernateTemplate().findByNamedParam(query, "name", '%' + str + '%');

 Referencias:
Hibernate: a developer's notebook, por James Elliot

No hay comentarios:

Publicar un comentario