List of usage examples for org.hibernate.criterion Restrictions and
public static LogicalExpression and(Criterion lhs, Criterion rhs)
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; }