Example usage for org.hibernate.criterion Restrictions in

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

Introduction

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

Prototype

public static Criterion in(String propertyName, Collection values) 

Source Link

Document

Apply an "in" constraint to the named property.

Usage

From source file:br.os.rh.lotacaodiscplinas.LotacaoDisciplinaDAO.java

public List<LotacaoDisciplina> pesquisaPeriodo() {
    setSessao(HibernateUtil.getSessionFactory().openSession());
    setTransacao(getSessao().beginTransaction());
    List<Lotacao> lotacoes = (List<Lotacao>) getSessao().createCriteria(Lotacao.class)
            .add(Restrictions.eq("periodo", Ativo.getPeriodo())).list();

    List<LotacaoDisciplina> lotDisc = (List<LotacaoDisciplina>) getSessao()
            .createCriteria(LotacaoDisciplina.class).add(Restrictions.in("lotacao", lotacoes)).list();
    getSessao().close();/*from  w  w  w .j  av  a2s . co m*/
    return lotDisc;
}

From source file:br.os.rh.salario.SalarioDAO.java

public List<Salario> pesquisaDisciplinaPeriodo(Disciplina d, Periodo p) {
    setSessao(HibernateUtil.getSessionFactory().openSession());
    setTransacao(getSessao().beginTransaction());

    List<Salario> salarios = (List<Salario>) getSessao().createCriteria(Salario.class)
            .add(Restrictions.eq("periodo", p)).list();

    List<LotacaoDisciplina> listaSalaDis = new ArrayList<>();
    if (salarios.size() > 0) {
        listaSalaDis = (List<LotacaoDisciplina>) getSessao().createCriteria(LotacaoDisciplina.class)
                .add(Restrictions.in("salario", salarios)).add(Restrictions.eq("disciplina", d)).list();
    }/*from ww  w. j ava2s.c o  m*/

    List<Salario> salarioReturn = new ArrayList<Salario>();
    for (int i = 0; i < listaSalaDis.size(); i++) {
        //            salarioReturn.add(listaSalaDis.get(i).getSalario());
    }

    getSessao().close();
    return salarioReturn;
}

From source file:br.os.rh.semestre.SemestreDAO.java

public List<Semestre> listarPorCurso() {
    List<Semestre> lista = null;

    CursoDAO cDAO = new CursoDAO();

    try {//from  www  . j a  va 2s. co  m
        this.setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());
        lista = this.getSessao().createCriteria(Semestre.class)
                .add(Restrictions.in("curso", cDAO.pesquisaCursosCoordenadores())).list();
        //sessao.close();
    } catch (Throwable e) {
        if (getTransacao().isActive()) {
            getTransacao().rollback();
        }
        JOptionPane.showMessageDialog(null, "No foi possvel listar: " + e.getMessage());
    }
    return lista;
}

From source file:br.ufg.calendario.dao.EventoDao.java

@Transactional(readOnly = true)
public List<Evento> listar(int first, int pageSize, String sortField, String sortOrder,
        Map<String, Object> filters) {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Evento.class);
    criteria.setFirstResult(first);//  w ww. j a  va  2  s.c  om
    criteria.setMaxResults(pageSize);

    if ((sortField != null && !sortField.isEmpty()) && (sortOrder != null && !sortOrder.isEmpty())) {
        if (sortOrder.equals("ASCENDING")) {
            criteria.addOrder(Order.asc(sortField));
        }
        if (sortOrder.equals("DESCENDING")) {
            criteria.addOrder(Order.desc(sortField));
        }
    } else {
        criteria.addOrder(Order.asc("id"));
    }
    if (filters != null && !filters.isEmpty()) {
        for (String key : filters.keySet()) {
            if (key.equals("termo")) {
                List foundList = buscarTermo(session, filters.get("termo").toString());
                if (foundList.size() > 0) {
                    criteria.add(Restrictions.in("id", foundList));
                } else {
                    criteria.add(Restrictions.or(
                            Restrictions.like("assunto", filters.get(key).toString(), MatchMode.ANYWHERE)
                                    .ignoreCase(),
                            Restrictions.like("descricao", filters.get(key).toString(), MatchMode.ANYWHERE)
                                    .ignoreCase()));
                }
            }

            if (key.equals("interessado")) {
                Interessado interessado = (Interessado) filters.get(key);
                System.out.println("interessado: " + interessado.getNome());
                criteria.createCriteria("interessado").add(Restrictions.eq("id", interessado.getId()));
            }

            if (key.equals("regional")) {
                Regional regional = (Regional) filters.get(key);
                System.out.println("regional: " + regional.getNome());
                criteria.createCriteria("regional").add(Restrictions.eq("id", regional.getId()));
            }

            if (key.equals("periodo")) {
                Map periodo = (Map) filters.get(key);
                criteria.add(Restrictions
                        .or(Restrictions.between("inicio", periodo.get("inicio"), periodo.get("termino")))
                        .add(Restrictions.between("termino", periodo.get("inicio"), periodo.get("termino"))));
            }

            if (key.equals("calendario")) {
                criteria.createAlias("calendario", "c");
                criteria.add(Restrictions.eq("c.ano", ((Calendario) filters.get(key)).getAno()));
            }

        }
    }
    if (filters == null || !filters.containsKey("calendario")) {
        criteria.createAlias("calendario", "c");
        criteria.add(Restrictions.eq("c.ativo", true));
    }
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    List<Evento> resultado = criteria.list();
    for (Evento evt : resultado) {
        Hibernate.initialize(evt.getInteressado());
        Hibernate.initialize(evt.getRegional());
    }
    return resultado;
}

From source file:br.ufg.reqweb.dao.RequerimentoDao.java

@Transactional(readOnly = true)
public List<Requerimento> find(String sortField, String sortOrder, Map<String, Object> filters) {
    if (filters == null) {
        filters = new HashMap();
    }/*from   w  ww  .  j a v a 2 s  .  com*/
    try {
        Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Requerimento.class);
        for (String field : filters.keySet()) {
            /**
             * login eq / tipoRequerimento eq / termo like / dataCriacao
             * between
             */
            if (field.equals("login")) {
                criteria.createAlias("discente", "d");
                criteria.add(Restrictions.and(Restrictions.eq("d.login", filters.get(field))));
            }
            if (field.equals("turmas")) {
                criteria.createAlias("itemRequerimentoList", "i");
                List<Turma> turmas = (List<Turma>) filters.get(field);
                criteria.add(Restrictions.and(Restrictions.in("i.turma", turmas)));
            }
            if (field.equals("tipoRequerimento")) {
                criteria.add(Restrictions.and(Restrictions.eq(field, filters.get(field))));
            }
            if (field.equals("termo")) {
                criteria.createAlias("discente", "d");
                criteria.add(Restrictions.or(Restrictions.eq("d.matricula", filters.get("termo")), Restrictions
                        .like("d.nome", filters.get("termo").toString(), MatchMode.ANYWHERE).ignoreCase()));
            }
            if (field.equals("curso")) {
                criteria.createAlias("discente.perfilList", "p");
                criteria.add(Restrictions.and(Restrictions.eq("p.curso", filters.get(field))));
            }
            if (field.equals("dataCriacao")) {
                Date[] arrayDate = (Date[]) filters.get("dataCriacao");
                criteria.add(Restrictions.and(Restrictions.between("dataCriacao", arrayDate[0], arrayDate[1])));
            }
        }
        if ((sortField != null && !sortField.isEmpty()) && (sortOrder != null && !sortOrder.isEmpty())) {
            if (sortOrder.toLowerCase().equals("asc")) {
                criteria.addOrder(Property.forName(sortField).asc());
            }
            if (sortOrder.toLowerCase().equals("desc")) {
                criteria.addOrder(Property.forName(sortField).desc());
            }
        }
        criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
        return criteria.list();
    } catch (HibernateException e) {
        System.out.println("query error: " + e.getMessage());
        return new ArrayList<>();
    }
}

From source file:ca.myewb.controllers.chapter.FindDupes.java

License:Open Source License

private void findEmailMatch(Context ctx, String toMatch, String key) {
    int maxSize = 11;
    String query = "SELECT userid FROM useremails e WHERE e.email LIKE '%" + toMatch + "%'";
    List ids = HibernateUtil.currentSession().createSQLQuery(query).list();
    if (ids.isEmpty()) {
        ctx.put(key, new Vector());
        return;/*from  ww w  . j  ava 2 s .c  o  m*/
    }

    Criteria crit = hibernateSession.createCriteria(UserModel.class);
    List uniqueResultsList = crit.add(Restrictions.in("id", ids)).add(Restrictions.ne("id", new Integer(1)))
            .setProjection(Projections.groupProperty("id")).setMaxResults(maxSize).list();

    Vector<UserModel> uniqueResults = new Vector<UserModel>();

    if (uniqueResultsList.size() < maxSize) {
        Iterator iter = uniqueResultsList.iterator();

        while (iter.hasNext()) {
            Integer i = (Integer) iter.next();

            // This try/catch block is a workaround to the deleted-admin-causes-cgilib-blowup bug
            try {
                uniqueResults.add((UserModel) hibernateSession.get(UserModel.class, i));
            } catch (Exception e) {
                log.warn("Unable to add user to usersearch: id " + i.toString());
            }
        }
        ctx.put(key, uniqueResults);
    }
}

From source file:ca.myewb.controllers.common.EventList.java

License:Open Source License

public Collection<EventModel> listVisibleEventsBetweenDates(Date start, Date end, GroupChapterModel chapter)
        throws HibernateException {
    Criteria criteria = hibernateSession.createCriteria(EventModel.class);

    LogicalExpression singleDayEvents = Restrictions.and(Restrictions.ge("startDate", start),
            Restrictions.le("endDate", end));
    LogicalExpression endsToday = Restrictions.and(Restrictions.lt("startDate", start),
            Restrictions.and(Restrictions.ge("endDate", start), Restrictions.le("endDate", end)));
    LogicalExpression startsToday = Restrictions.and(
            Restrictions.and(Restrictions.ge("startDate", start), Restrictions.le("startDate", end)),
            Restrictions.gt("endDate", end));
    LogicalExpression ongoing = Restrictions.and(Restrictions.lt("startDate", start),
            Restrictions.gt("endDate", end));

    criteria.add(Restrictions.or(singleDayEvents,
            Restrictions.or(endsToday, Restrictions.or(startsToday, ongoing))));

    if (chapter == null) {
        if (!currentUser.isAdmin()) {
            criteria.add(Restrictions.in("group", Permissions.visibleGroups(currentUser, true)));
        } else {/*from  w ww  . ja va2s.  c o m*/
            List<GroupModel> adminGroups = Helpers.getNationalRepLists(true, true);
            adminGroups.add(Helpers.getGroup("Exec"));
            adminGroups.add(Helpers.getGroup("ProChaptersExec"));

            criteria.add(Restrictions.in("group", adminGroups));
        }
    } else {
        criteria.add(Restrictions.in("group", Permissions.visibleGroupsInChapter(currentUser, chapter)));
    }

    criteria.addOrder(Order.asc("startDate"));
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    return new SafeHibList<EventModel>(criteria).list();
}

From source file:ca.myewb.controllers.common.EventList.java

License:Open Source License

public List<EventModel> listPaginatedVisibleEvents(String filter, int startPage, int eventsPerPage,
        Date endAfter) throws HibernateException {
    Criteria criteria = hibernateSession.createCriteria(EventModel.class);

    if (!currentUser.isAdmin()) {
        log.info("EventList visible groups added to criteria");
        criteria.add(Restrictions.in("group", Permissions.visibleGroups(currentUser, true)));
    }//  www  .  j  a  v  a2s .co  m

    criteria.addOrder(Order.asc("startDate"));
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    addBooleanFilters(endAfter, criteria);
    addFilter(filter, criteria);
    addPagination(startPage, eventsPerPage, criteria);

    return getUniqueEventList(criteria);
}

From source file:ca.myewb.controllers.common.EventList.java

License:Open Source License

public int visibleEventCount(String filter, Date endAfter) throws HibernateException {
    Criteria criteria = hibernateSession.createCriteria(EventModel.class);

    if (!currentUser.isAdmin()) {
        criteria.add(Restrictions.in("group", Permissions.visibleGroups(currentUser, true)));
    }//from   w ww. j  av  a 2  s . c  om

    addBooleanFilters(endAfter, criteria);
    addFilter(filter, criteria);

    criteria.addOrder(Order.asc("startDate"));
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    return getUniqueEventCount(criteria);
}

From source file:ca.myewb.controllers.common.EventList.java

License:Open Source License

public int visiblePreviousEventCount(String filter, Date fromDate) throws HibernateException {
    Criteria criteria = hibernateSession.createCriteria(EventModel.class);

    if (!currentUser.isAdmin()) {
        criteria.add(Restrictions.in("group", Permissions.visibleGroups(currentUser, true)));
    }/*from ww w .  jav a2s.c om*/

    criteria.add(Restrictions.lt("startDate", fromDate));
    addFilter(filter, criteria);

    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    return getUniqueEventCount(criteria);
}