Skip to main content

Utilizando Like en consultas JPA

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

Comments

Muchas gracias me ha servido para realizar mi TFG de la carrera!
Jose es muy grato saber que te fue útil, muchos saludos

Popular posts from this blog

Un ejemplo sencillo de Refactorización y Genericos

Un ejemplo sencillo de Refactorización y Genericos

public class Refactorizador<K, V> {

    public V copyFromBeans(K k, V v) {
        try {
            Class claseK = k.getClass();
            Class claseV = v.getClass();

            Method[] metodosK = claseK.getMethods();

            for (Method method : metodosK) {
                if (isGetter(method)) {
                    Method metodoGetK = claseK.getDeclaredMethod(method.getName());
                    Method metodoSetV = claseV.getDeclaredMethod(changeGetBySet(method.getName()), method.getReturnType());
                    metodoSetV.invoke(v, metodoGetK.invoke(k));
                }

            }

        } catch (Exception e) {
            System.out.println("refactorizador() " + e.getLocalizedMessage());
        }
        return v;
    }

     public  boolean isGetter(Method method) {

        if (!method.getName().startsWith("get")) {
            return false;
        }
        if (method.getName().startsWith("getCla…

Apache NetBeans

Apache NetBeans
https://wiki.apache.org/incubator/NetBeansProposal

Si, algo que se esperaba desde hace muchos años, una liberación de NetBeans, para convertirlo en un IDE más abierto, y que permita mayor contribución de la comunidad y de otras empresas, ya inicio su primera etapa en la incubadora de la Fundación Apache.
Las implicaciones que esto conlleva son múltiples por una parte esta la evolución de NetBeans, al permitir que más contribuyentes puedan aportar a sus mejoras, también garantiza que aquellas instituciones no sientan que es una sola organización la que controla la evolución. A las comunidades les permite sentirse que participan de un proyecto con todas las garantías que ofrece la Fundación Apache.

Muchos pensaran que Oracle esta dejando morir el proyecto, la realidad es diferente, hay muchos ingenieros que están participando del proyecto en la fundación Apache.
Es una noticia excelente para los desarrolladores, instituciones, empresas que utilizan NetBeans , se estima qu…