En algunas ocasiones necesitamos hacer las consultas utilizando un patrón determinado, en las setencias sql generalmente usamos like %patron%.
Asumimos que tenemos una clase llamada Interes.java, agregamos un nuevo @NamedQuery y colocamos lower() para convertir a minuscula el resultado y utilizamos like para la busqueda del patrón.
@NamedQuery(name = "Interes.findByNombreLike", query = "SELECT i FROM Interes i WHERE
lower(i.nombre) like :nombre"),
Editamos la clase controlador
public List findByNombreLike() {
EntityManager em = null;
try {
// itemsSearch = null;
if (current == null) {
}
String nombre = current.getNombre();
if (nombre == null) {
return null;
}
em = getEntityManager();
// aqui convertimos a minuscula y buscamos la palabra en cualquier
nombre = "%" +nombre.trim() +"%";
return em.createNamedQuery("Interes.findByNombreLike").setParameter("nombre", nombre).getResultList();
} catch (Exception ex) {
JsfUtil.addSuccessMessage(ex.getLocalizedMessage());
JsfUtil.addErrorMessage(ex, "Error. findNombre() ");
}
return null;
}
Asumimos que tenemos una clase llamada Interes.java, agregamos un nuevo @NamedQuery y colocamos lower() para convertir a minuscula el resultado y utilizamos like para la busqueda del patrón.
@NamedQuery(name = "Interes.findByNombreLike", query = "SELECT i FROM Interes i WHERE
lower(i.nombre) like :nombre"),
Editamos la clase controlador
public List
EntityManager em = null;
try {
// itemsSearch = null;
if (current == null) {
}
String nombre = current.getNombre();
if (nombre == null) {
return null;
}
em = getEntityManager();
// aqui convertimos a minuscula y buscamos la palabra en cualquier
nombre = "%" +nombre.trim() +"%";
return em.createNamedQuery("Interes.findByNombreLike").setParameter("nombre", nombre).getResultList();
} catch (Exception ex) {
JsfUtil.addSuccessMessage(ex.getLocalizedMessage());
JsfUtil.addErrorMessage(ex, "Error. findNombre() ");
}
return null;
}
Comments