Example usage for org.hibernate.criterion Restrictions and

List of usage examples for org.hibernate.criterion Restrictions and

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions and.

Prototype

public static LogicalExpression and(Criterion lhs, Criterion rhs) 

Source Link

Document

Return the conjuction of two expressions

Usage

From source file:itensil.repository.hibernate.BasicSearcher.java

License:Open Source License

protected static Criterion convertCriteria(Criteria crit, BasicSearchClause clause, String alias) {
    if (clause.needsSubClause()) {
        switch (clause.getOp()) {
        case BasicSearchClause.OP_AND:
            Junction conj = Restrictions.conjunction();
            boolean empty = true;
            int acount = 0;
            for (BasicSearchClause subClause : clause.getSubClauses()) {
                Criterion subCrit = convertCriteria(crit, subClause, alias + "a" + acount);
                acount++;/*  w ww  .j a  v a2  s.  c om*/
                if (subCrit != null) {
                    empty = false;
                    conj.add(subCrit);
                }
            }
            return empty ? null : conj;

        case BasicSearchClause.OP_NOT:
            Criterion subCrit = convertCriteria(crit, clause.getSubClauses()[0], alias + "n");
            if (subCrit != null) {
                return Restrictions.not(subCrit);
            }
            return null;

        default: // probably OR
            return null;
        }
    }
    if (clause.getOp() == BasicSearchClause.OP_IS_COLLECTION) {
        return Restrictions.eq("collection", true);
    }
    String argName;
    Criterion nameCrit = null;
    if (QNAME_DISPLAYNAME.equals(clause.getProperty())) {
        if (clause.getOp() == BasicSearchClause.OP_IS_DEFINED)
            return null;
        argName = "localUri";
    } else {

        /* This has bugged in hibernate
                
        crit.createAlias("versionEntities", alias);
        crit.createAlias(alias + ".propertyVals", alias + "pv");
        //crit.createAlias(alias + "p.name", alias + "nm");
        argName = alias + "pv.value";
                
                
        crit.createAlias("defaultVersion.directProps", alias);
        crit.createAlias("defaultVersion.directProps.name", alias + "nm");
                
        //crit.createAlias(alias + "dp.name", alias + "nm");
        argName = alias + ".value";
        nameCrit = Restrictions.eq(alias + "nm.localName", clause.getProperty().getLocalPart());
        */
        return null;
    }
    Criterion valCrit;
    switch (clause.getOp()) {
    case BasicSearchClause.OP_IS_DEFINED:
        return nameCrit;
    case BasicSearchClause.OP_EQ:
        valCrit = Restrictions.eq(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_GT:
        valCrit = Restrictions.gt(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_GTE:
        valCrit = Restrictions.ge(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_LT:
        valCrit = Restrictions.lt(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_LTE:
        valCrit = Restrictions.le(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_LIKE:
        valCrit = Restrictions.like(argName, clause.getLiteral());
        break;
    default:
        return null;
    }
    return nameCrit == null ? valCrit : Restrictions.and(nameCrit, valCrit);
}

From source file:marmar.ganaderia_fxml.hibernate.ConectorBovino.java

/**
 * This method returns a list of bovines that are not dead and that havent
 * been sold. Also it inizializes their Raze, Sale and Vacination objects.
 *
 * @return/*from   w ww  .j  ava  2 s . c  o  m*/
 */
public ArrayList<Bovino> getVivosyNoVendidos() {
    ArrayList<Bovino> result = null;
    Session session = HibernateConector.factory.openSession();
    Transaction tx = null;
    try {
        tx = session.beginTransaction();

        Criteria cr = session.createCriteria(Bovino.class);

        // To check if the given property is null 
        Criterion fm = Restrictions.isNull("fecha_muerte");
        Criterion v = Restrictions.isNull("venta");
        LogicalExpression andexp = Restrictions.and(fm, v);
        cr.add(andexp);

        result = (ArrayList) cr.list();

        for (Bovino b : result) {
            Hibernate.initialize(b.getRaza());
            Hibernate.initialize(b.getVenta());
            Hibernate.initialize(b.getVacunas());
            b.getVacunas().size();
        }
        tx.commit();

    } catch (HibernateException he) {
        if (tx != null) {
            tx.rollback();
        }
        System.err.println(he.getMessage());
        he.printStackTrace();
    } finally {
        session.close();
    }
    return result;
}

From source file:model.Suggests.java

public boolean searchsuggest(int from, int to) {

    sessionfactory = new Configuration().configure().buildSessionFactory();
    session = sessionfactory.openSession();
    session.beginTransaction();//from  ww  w  .  j a v  a 2 s .c  o m

    c = session.createCriteria(Suggested.class);
    c.add(Restrictions.and(Restrictions.eq("pFrom", from), Restrictions.eq("pTo", to)));
    List<Suggested> cat = c.list();

    session.close();

    if (cat.size() > 0) {
        return true;
    }
    return false;

}

From source file:model.Suggests.java

public void updatesuggest(int from, int to) {

    if (searchsuggest(from, to)) {

        try {//from   w  w w.  ja  va 2  s .c o m
            sessionfactory = new Configuration().configure().buildSessionFactory();
            session = sessionfactory.openSession();
            session.beginTransaction();
            c = session.createCriteria(Suggested.class);
            c.add(Restrictions.and(Restrictions.eq("pFrom", from), Restrictions.eq("pTo", to)));
            List<Suggested> cat = c.list();

            Suggested s = cat.get(0);
            System.out.println(s.getVisits());
            s.setVisits(s.getVisits() + 1);

            session.update(s);

            System.out.println(s.getId());

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex + "\n in method update to update visit");
        }

    } else {
        try {
            sessionfactory = new Configuration().configure().buildSessionFactory();
            session = sessionfactory.openSession();
            session.beginTransaction();

            Suggested s = new Suggested();

            s.setpFrom(from);
            s.setpTo(to);

            session.save(s);

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex + "\n in method update to insert");
        }
        //add to from

    }
    session.getTransaction().commit();
    session.close();
    System.out.println("aaaaaaaaa");
}

From source file:modelo.dao.ExamenAsignadoDAO.java

License:Open Source License

/**
 * Obtiene todos los examenes que han sido asignados (pero no contestados) a
 * un alumno, tambien este mtodo valida que no haya examenes almacenados
 * que el alumno nunca contest y los cuales ya no son vlidos porque el
 * lapso para ser contestados ha pasado/*  www  .j a  v  a 2  s .  c  om*/
 *
 * @param alumno el objeto usuario que representa al alumno, del que se
 * quiere obtener sus exmenes asignados sin contestar
 *
 * @return una lista de exmenes asignados vigentes para ser contestados por
 * el alumno
 */
public List<ExamenAsignadoDTO> obtenerAsignados(UsuarioDTO alumno) {
    Session s = getSession();
    Transaction tx = null;
    List<ExamenAsignadoDTO> examenes = null;

    if (s == null) {
        System.out.println("Session nula, regresando null....");
        return null;
    }

    try {
        tx = s.beginTransaction();

        //Obtener los exmenes del alumno que an no tengan calificacin
        Criteria c = s.createCriteria(ExamenAsignadoDTO.class, "examen").add(Restrictions
                .and(Restrictions.eq("examen.alumno", alumno), Restrictions.eq("examen.calificacion", -1.0)));

        examenes = c.list();

        for (int i = 0; i < examenes.size(); i++) {
            ExamenAsignadoDTO examen = examenes.get(i);

            Date fechaAsignacion = examen.getFechaAsignacion();
            //Transformar los minutos a milisegundos
            long tiempoLimite = examen.getTiempo() * 60 * 1000;
            long hoy = System.currentTimeMillis();

            //Si ya pas el periodo para contestar el examen
            if (hoy >= (fechaAsignacion.getTime() + tiempoLimite)) {
                //Ya no sirve tener un examen que nunca se contest
                s.delete(examen);

                examenes.remove(i);
                i--;
            }
        }

        tx.commit();

    } catch (StaleStateException ex) {
        if (tx != null) {
            tx.rollback();
        }
    } catch (Exception e) {
        if (tx != null) {
            tx.rollback();
        }
        examenes = null;
    } finally {
        s.close();
        System.out.println("Session cerrada");
    }

    return examenes;
}

From source file:modelo.dao.ExamenDAO.java

License:Open Source License

/**
 * Este mtodo sirve para obtener exmenes por el curso seleccionado,
 * obteniendo slo los exmenes pblicos o aquellos hechos por el maestro
 * ingresado y que coincidan con el curso ingresado
 * /*from  w ww.  j a  v  a 2 s  .  c  o  m*/
 * @param curso el objeto CursoDTO del que se quieren obtener los
 * exmenes que pertenecen a dicho curso
 * 
 * @param maestro Sirve para filtrar la bsqueda por el
 * autor del examen. Esta consulta regresa los exmenes que pertenezcan
 * al curso y que adems son pblicos o hechos por el maestro.
 * 
 * @return Una lista de ExamenDTO con los exmenes que cumplen las coincidencias
 * o null, en caso de que no haya coincidencias
 */
public List<ExamenDTO> obtenerPublicosPorCurso(CursoDTO curso, UsuarioDTO maestro) {

    Session s = getSession();
    Transaction tx = null;
    List<ExamenDTO> examenes;

    if (s == null) {
        System.out.println("Session nula, regresando null....");
        return null;
    }

    try {
        tx = s.beginTransaction();
        //Obtiene todos los exmenes que coincidan con el curso,
        //sin sus relaciones (claves)
        //Aquellos examenes que sean (publicos o del maestro) y que
        //pertenezcan al curso
        Criteria c = s.createCriteria(ExamenDTO.class, "examen").createAlias("examen.curso", "curso")
                .add(Restrictions.and(Restrictions.eq("curso.nombre", curso.getNombre()),
                        Restrictions.or(Restrictions.eq("examen.permiso", Permiso.Publico),
                                Restrictions.eq("examen.autor", maestro))));

        examenes = c.list();
        tx.commit();
    } catch (Exception e) {
        if (tx != null) {
            tx.rollback();
        }
        examenes = null;
    } finally {
        s.close();
        System.out.println("Session cerrada");
    }

    return examenes;
}

From source file:modelo.dao.ExamenDAO.java

License:Open Source License

/**
 * Este mtodo sirve para obtener exmenes por el nombre ingresado,
 * obteniendo slo los exmenes pblicos o aquellos hechos por el maestro
 * ingresado, y que coincidan con el nombre ingresado
 * /*ww  w. j  ava2  s .c o m*/
 * @param nombre el nombre o parte del nombre del examen utilizado como filtro
 * 
 * @param maestro Sirve para filtrar la bsqueda por el
 * autor del examen. Esta consulta regresa los exmenes que coincidan con el
 * nombre y que adems son pblicos o hechos por el maestro.
 * 
 * @return Una lista de ExamenDTO con los exmenes que cumplen las coincidencias
 * o null, en caso de que no haya coincidencias
 */
public List<ExamenDTO> obtenerPublicosPorNombre(String nombre, UsuarioDTO maestro) {

    Session s = getSession();
    Transaction tx = null;
    List<ExamenDTO> examenes;

    if (s == null) {
        System.out.println("Session nula, regresando null....");
        return null;
    }

    try {
        tx = s.beginTransaction();
        //Obtiene todos los exmenes que coincidan con el nombre,
        //sin sus relaciones (claves)
        //Aquellos examenes que sean (publicos o del maestro) y que
        //coincidan con el nombre
        Criteria c = s.createCriteria(ExamenDTO.class, "examen")
                .add(Restrictions.and(Restrictions.like("examen.nombre", "%" + nombre + "%"),
                        Restrictions.or(Restrictions.eq("examen.permiso", Permiso.Publico),
                                Restrictions.eq("examen.autor", maestro))));

        examenes = c.list();
        tx.commit();
    } catch (Exception e) {
        if (tx != null) {
            tx.rollback();
        }
        examenes = null;
    } finally {
        s.close();
        System.out.println("Session cerrada");
    }

    return examenes;
}

From source file:modelo.dao.ExamenDAO.java

License:Open Source License

/**
 * Este mtodo sirve para obtener exmenes por el nombre ingresado y el curso
 * seleccionado obteniendo todos los exmenes que coincidan con el nombre y el
 * curso/*from  www . j  a  v a2  s.  co  m*/
 * 
 * @param curso el objeto CursoDTO del que se quieren obtener los
 * exmenes que pertenecen a dicho curso
 * @param nombre el nombre o parte del nombre del examen utilizado como filtro
 * 
 * @return Una lista de ExamenDTO con los exmenes que cumplen las coincidencias
 * o null, en caso de que no haya coincidencias
 */
public List<ExamenDTO> obtenerTodosPorCursoYNombre(CursoDTO curso, String nombre) {

    Session s = getSession();
    Transaction tx = null;
    List<ExamenDTO> examenes;

    if (s == null) {
        System.out.println("Session nula, regresando null....");
        return null;
    }

    try {
        tx = s.beginTransaction();
        //Obtiene todos los exmenes que coincidan con el nombre y el curso,
        //sin sus relaciones (claves)
        Criteria c = s.createCriteria(ExamenDTO.class, "examen").createAlias("examen.curso", "curso")
                .add(Restrictions.and(Restrictions.eq("curso.nombre", curso.getNombre()),
                        Restrictions.like("examen.nombre", "%" + nombre + "%")));

        examenes = c.list();
        tx.commit();
    } catch (Exception e) {
        if (tx != null) {
            tx.rollback();
        }
        examenes = null;
    } finally {
        s.close();
        System.out.println("Session cerrada");
    }

    return examenes;
}

From source file:modelo.dao.ExamenDAO.java

License:Open Source License

/**
 * Este mtodo sirve para obtener exmenes por el nombre ingresado y el curso
 * seleccionado obteniendo slo los exmenes pblicos o hechos por el 
 * maestro ingresado, y que coincidan con el nombre ingresado y el curso
 * seleccionado//from ww  w  .ja v a2  s.  c o m
 * 
 * @param curso el objeto CursoDTO del que se quieren obtener los
 * exmenes que pertenecen a dicho curso
 * @param nombre el nombre o parte del nombre del examen utilizado como filtro
 * 
 * @param maestro Sirve para filtrar la bsqueda por el
 * autor del examen. Esta consulta regresa los exmenes que coincidan con el
 * nombre y el curso y que adems son pblicos o hechos por el maestro.
 * 
 * @return Una lista de ExamenDTO con los exmenes que cumplen las coincidencias
 * o null, en caso de que no haya coincidencias
 */
public List<ExamenDTO> obtenerPublicosPorCursoYNombre(CursoDTO curso, String nombre, UsuarioDTO maestro) {

    Session s = getSession();
    Transaction tx = null;
    List<ExamenDTO> examenes;

    if (s == null) {
        System.out.println("Session nula, regresando null....");
        return null;
    }

    try {
        tx = s.beginTransaction();
        //Obtiene todos los exmenes que coincidan con el curso y el nombre,
        //sin sus relaciones (claves)
        //Aquellos examenes que sean (publicos o del maestro) y que
        //pertenezcan al curso y coincidan con el nombre
        Criteria c = s.createCriteria(ExamenDTO.class, "examen").createAlias("examen.curso", "curso")
                .add(Restrictions.and(
                        Restrictions.and(Restrictions.eq("curso.nombre", curso.getNombre()),
                                Restrictions.like("examen.nombre", "%" + nombre + "%")),
                        Restrictions.or(Restrictions.eq("examen.permiso", Permiso.Publico),
                                Restrictions.eq("examen.autor", maestro))));

        examenes = c.list();
        tx.commit();
    } catch (Exception e) {
        if (tx != null) {
            tx.rollback();
        }
        examenes = null;
    } finally {
        s.close();
        System.out.println("Session cerrada");
    }

    return examenes;
}

From source file:modelo.dao.UsuarioDAO.java

License:Open Source License

/**
 * Obtiene todos los usuarios que concuerden con los parametros
 *
 * @param apellido El patron por el cual se buscaran los usuarios
 * @param tipo el tipo de usuario a buscar
 * @return Lista de UsuarioDTO que concuerden con el nombre ingresado, o
 * null en caso de que ningun usuario concuerde
 */// w  w  w . jav  a2  s.c om
public List<UsuarioDTO> obtenerUsuariosPorApellido(String apellido, Tipo tipo) {
    Session s = getSession();
    Transaction tx = null;
    List<UsuarioDTO> usuarios;

    if (s == null) {
        System.out.println("Session nula, regresando null....");
        return null;
    }

    try {
        tx = s.beginTransaction();
        //Obtiene todos los objetos que concuenrden con el apellido

        usuarios = s.createCriteria(UsuarioDTO.class).add(Restrictions
                .and(Restrictions.like("apellidoPaterno", "%" + apellido + "%"), Restrictions.eq("tipo", tipo)))
                .list();

        tx.commit();
    } catch (Exception e) {
        if (tx != null) {
            tx.rollback();
        }
        usuarios = null;
    } finally {
        s.close();
        System.out.println("Session cerrada");
    }
    return usuarios;
}