List of usage examples for org.hibernate.criterion Property in
public Criterion in(DetachedCriteria subselect)
From source file:org.semtix.db.DBHandlerAntrag.java
License:Open Source License
/** * Liefert Liste mit allen Antrgen fr eine bestimmte Uni * zurck. Antrge haben selber kein Feld fr die Universitt, * so dass etwas aufwendig ber das Semester gesucht werden muss. * * @param uni Uni//from www . j av a2 s. c o m * @return Liste mit Antrgen */ public List<Antrag> getAntragListeUni(Uni uni) { Session session = HibernateUtil.getSessionFactory().openSession(); Criteria crit = session.createCriteria(Antrag.class); Property property = Property.forName("semesterID"); List<Integer> ids = new ArrayList<>(); for (Semester s : new DBHandlerSemester().getSemesterListe(uni)) { ids.add(s.getSemesterID()); } crit.add(property.in(ids)); crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); List<Antrag> result = crit.list(); session.close(); return result; }
From source file:org.semtix.db.DBHandlerPerson.java
License:Open Source License
/** * Liefert eine Liste von Personen die seit i Semestern KEINEN Antrag gestellt haben. Wenn i==0, dann sind das Personen, die noch NIE einen Antrag gestellt haben. * @param i Wieviele Semester/*ww w.ja v a2s.c om*/ * @return Liste der Personen die in i Semestern KEINEN Antrag gestellt haben */ public List<Person> getListePersonenSeitSemesternOhneAntrag(int i) { //Letzte i Semester in einer Liste: Set<Integer> semesterIDs = bestimmeLetzteSemester(i); Session session = HibernateUtil.getSessionFactory().openSession(); Criteria critAntrag = session.createCriteria(Antrag.class); if (null != semesterIDs && semesterIDs.size() > 0) { Property semesterId = Property.forName("semesterID"); critAntrag.add(semesterId.in(semesterIDs)); } //ntig weil sonst outer join doppelte resultate critAntrag.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); List<Antrag> antraegeDerSemester = critAntrag.list(); //Personen und Antrge HashSet<Integer> personIds = new HashSet<>(); for (Antrag a : antraegeDerSemester) { personIds.add(a.getPersonID()); } //We are looking for persons that are not in the list: Criteria critPerson = session.createCriteria(Person.class); critPerson.add(Restrictions.eq("uni", UniConf.aktuelleUni)); critPerson.add(Restrictions.not(Restrictions.in("personID", personIds))); critPerson.addOrder(Order.asc("nachname")); critAntrag.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); List<Person> personsNotInList = critPerson.list(); session.close(); return personsNotInList; }