Example usage for org.hibernate.criterion Restrictions or

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

Introduction

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

Prototype

public static LogicalExpression or(Criterion lhs, Criterion rhs) 

Source Link

Document

Return the disjuction of two expressions

Usage

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

@Transactional(readOnly = true)
public List<Interessado> listar(String termo) {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Interessado.class);
    criteria.add(Restrictions.or(Restrictions.like("sigla", termo, MatchMode.ANYWHERE).ignoreCase(),
            Restrictions.like("nome", termo, MatchMode.ANYWHERE).ignoreCase()))
            .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    return criteria.list();
}

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

@Transactional(readOnly = true)
public int rowCount(String termo) {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Interessado.class);
    if (termo != null && !termo.isEmpty()) {
        criteria.add(Restrictions.or(Restrictions.like("sigla", termo.trim(), MatchMode.ANYWHERE).ignoreCase(),
                Restrictions.like("nome", termo.trim(), MatchMode.ANYWHERE).ignoreCase()));
    }//from   ww w  . ja va  2 s . c  o m
    return ((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();
}

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

@Transactional(readOnly = true)
public List<Usuario> listar(int first, int pageSize, String sortField, String sortOrder,
        Map<String, Object> filters) {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Usuario.class);
    criteria.setFirstResult(first);//w w w .j a v a  2  s.co m
    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")) {
                criteria.add(Restrictions.or(
                        Restrictions.like("nome", filters.get(key).toString(), MatchMode.ANYWHERE).ignoreCase(),
                        Restrictions.like("login", filters.get(key).toString(), MatchMode.ANYWHERE)
                                .ignoreCase()));
            }

            if (key.equals("perfil")) {
                PerfilEnum p = (PerfilEnum) filters.get(key);
                criteria.add(Restrictions.eq("perfil", p));
            }

        }
    }
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    List<Usuario> resultado = criteria.list();
    for (Usuario u : resultado) {
        Hibernate.initialize(u.getPerfil());
    }
    return resultado;
}

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

@Transactional(readOnly = true)
public List<IndicePrioridade> find(String termo) {
    try {/*from   w w w . j a v  a 2  s .  c  om*/
        return this.sessionFactory.getCurrentSession().createCriteria(IndicePrioridade.class)
                .createAlias("discente", "d")
                .add(Restrictions.or(Restrictions.eq("d.matricula", termo),
                        Restrictions.like("d.nome", termo, MatchMode.ANYWHERE).ignoreCase()))
                .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).list();
    } catch (HibernateException e) {
        System.out.println("query error: " + e.getMessage());
        return new ArrayList<>();
    }
}

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

/**
 * find by discente nome//from w w  w . j  ava  2  s. c  om
 *
 * @param termo
 * @param sortField
 * @param sortOrder
 * @return
 */
@Transactional(readOnly = true)
public List<Requerimento> find(String termo, String sortField, String sortOrder) {
    try {
        List<Requerimento> requerimentos;
        Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Requerimento.class)
                .createAlias("discente", "d").add(Restrictions.or(Restrictions.eq("d.matricula", termo),
                        Restrictions.like("d.nome", termo, MatchMode.ANYWHERE).ignoreCase()));

        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: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  w w.  ja va2s  .  c  o m
    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.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 v  a  2s  .c  om
            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.PostList.java

License:Open Source License

private void addBooleanFilters(boolean onlyNew, boolean findReplies, boolean onlyFlagged, boolean onlyFeatured,
        boolean findEmails, boolean sortByLastReply, Criteria criteria) {

    if (!findReplies) {
        criteria.add(Restrictions.isNull("parent"));
    }/*w ww  .  jav  a  2 s.  c  o  m*/

    if (!findEmails) {
        criteria.add(Restrictions.eq("emailed", false));
    }

    if (sortByLastReply) {
        criteria.addOrder(Order.desc("lastReply"));
    } else if (onlyNew) {
        SimpleExpression mainDate = Restrictions.gt("date", currentUser.getLastLogin());
        criteria.add(mainDate);
        criteria.addOrder(Order.asc("date"));
    } else {
        criteria.addOrder(Order.desc("date"));
    }

    if (onlyFlagged) {
        Set<PostModel> flaggedPosts2 = currentUser.getFlaggedPosts();
        if (flaggedPosts2.isEmpty()) {
            criteria.add(Restrictions.eq("id", 0));
        } else {
            Vector<Integer> flaggedIDs = new Vector<Integer>();
            for (PostModel p : flaggedPosts2) {
                flaggedIDs.add(p.getId());
            }

            Criterion flaggedSelf = Restrictions.in("id", flaggedIDs);
            Criterion flaggedParent = Restrictions.in("parent", flaggedPosts2);
            criteria.add(Restrictions.or(flaggedSelf, flaggedParent));
        }
    }

    if (onlyFeatured) {
        criteria.add(Restrictions.eq("featured", true));
    }

}

From source file:ca.qc.cegepoutaouais.tge.pige.server.PigeHibernateUtil.java

License:Open Source License

public static Criterion buildFilterCriterion(List<FilterConfig> filterConfigList) {

    if (filterConfigList == null || filterConfigList.size() <= 0) {
        return null;
    }/*from w w  w.  j  a va 2s  .  c  o  m*/

    FilterConfig matchModeConfig = null;
    for (FilterConfig fc : filterConfigList) {
        String field = fc.getField();
        if (field != null && field.equals(PIGE.MATCH_MODE)) {
            matchModeConfig = fc;
            filterConfigList.remove(fc);
            break;
        }
    }

    MatchMode matchMode = MatchMode.ANYWHERE;
    //if (matchModeConfig != null && (Boolean) matchModeConfig.getValue()) {
    //    matchMode = MatchMode.EXACT;
    //}

    Criterion filterCriteria = null;
    Deque<FilterConfig> queue = new ArrayDeque<FilterConfig>(filterConfigList);
    FilterConfig filterConfig = null;
    while (queue.peekFirst() != null) {
        filterConfig = queue.pollFirst();
        if (filterConfig.getField() == null || filterConfig.getValue() == null) {
            continue;
        }
        // Test pour chercher par nom de rle.
        if (filterConfig.getField().equals(User.ROLE_REF)) {
            ManagementServiceImpl rpcService = new ManagementServiceImpl();
            List<Role> roles = rpcService.getAllRole();
            String roleName = (String) filterConfig.getValue();
            Boolean roleFound = false;
            for (Role role : roles) {
                if (role.getName().equalsIgnoreCase(roleName)) {
                    filterConfig.setValue(role);
                    roleFound = true;
                    break;
                }
            }
            if (!roleFound) {
                continue;
            }

        }
        //
        if (filterCriteria == null) {
            filterCriteria = createLikeRestriction(filterConfig, matchMode);
            //Restrictions.like(
            //filterConfig.getField(),
            //(String) filterConfig.getValue(), matchMode);
            if (queue.peekFirst() != null) {
                filterConfig = queue.pollFirst();
                filterCriteria = Restrictions.or(filterCriteria,
                        createLikeRestriction(filterConfig, matchMode));
                //Restrictions.like(filterConfig.getField(),
                //(String) filterConfig.getValue(), matchMode));
            }
        } else {
            filterCriteria = Restrictions.or(filterCriteria, createLikeRestriction(filterConfig, matchMode));
            //Restrictions.like(filterConfig.getField(),
            //(String) filterConfig.getValue(), matchMode));
        }
    }

    return filterCriteria;
}

From source file:chat.service.DoChat.java

License:LGPL

/**
 * read chats according to SO' {@link Chat#out} and {@link Chat#in} from
 * {@link Chat#datime}(excluded, or oldest if null), order by {@link Chat#datime} asc
 *//*from w  ww  .j  a v a  2  s .  co  m*/
@Service
@Transac.Readonly
public List<Chat> read(Chat c) throws Exception {
    Criteria<Chat> t = data.criteria(Chat.class);
    User me = new User().id(sess.me);

    Criterion out = Restrictions.eq("out", me);
    if (c.in != null)
        out = Restrictions.and(out, // chats from me
                Restrictions.eq("in", c.in));
    Criterion in = Restrictions.eq("in", me);
    if (c.out != null)
        in = Restrictions.and(in, // chats to me
                Restrictions.eq("out", c.out));
    t.add(Restrictions.or(out, in));
    if (c.datime != null)
        t.add(Restrictions.gt("datime", c.datime));
    return t.addOrder(Order.asc("datime")).list();
}