Example usage for org.hibernate.criterion Restrictions disjunction

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

Introduction

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

Prototype

public static Disjunction disjunction() 

Source Link

Document

Group expressions together in a single disjunction (A or B or C...).

Usage

From source file:mx.edu.um.mateo.rh.dao.impl.TipoEmpleadoDaoHibernate.java

License:Open Source License

@Override
@Transactional(readOnly = true)//from  w  w  w .  jav a 2 s . c  o  m
public Map<String, Object> lista(Map<String, Object> params) {
    log.debug("Buscando lista de tipoEmpleados con params {}", params);
    if (params == null) {
        params = new HashMap<>();
    }

    if (!params.containsKey("max")) {
        params.put("max", 10);
    } else {
        params.put("max", Math.min((Integer) params.get("max"), 100));
    }

    if (params.containsKey("pagina")) {
        Long pagina = (Long) params.get("pagina");
        Long offset = (pagina - 1) * (Integer) params.get("max");
        params.put("offset", offset.intValue());
    }

    if (!params.containsKey("offset")) {
        params.put("offset", 0);
    }
    Criteria criteria = currentSession().createCriteria(TipoEmpleado.class);
    Criteria countCriteria = currentSession().createCriteria(TipoEmpleado.class);

    if (params.containsKey("organizacion")) {
        criteria.createCriteria("organizacion").add(Restrictions.idEq(params.get("organizacion")));
        countCriteria.createCriteria("organizacion").add(Restrictions.idEq(params.get("organizacion")));
    }

    if (params.containsKey("filtro")) {
        String filtro = (String) params.get("filtro");
        Disjunction propiedades = Restrictions.disjunction();
        propiedades.add(Restrictions.ilike("descripcion", filtro, MatchMode.ANYWHERE));
        propiedades.add(Restrictions.ilike("prefijo", filtro, MatchMode.ANYWHERE));
        criteria.add(propiedades);
        countCriteria.add(propiedades);
    }

    if (params.containsKey("order")) {
        String campo = (String) params.get("order");
        if (params.get("sort").equals("desc")) {
            criteria.addOrder(Order.desc(campo));
        } else {
            criteria.addOrder(Order.asc(campo));
        }
    }

    if (!params.containsKey("reporte")) {
        criteria.setFirstResult((Integer) params.get("offset"));
        criteria.setMaxResults((Integer) params.get("max"));
    }
    params.put(Constantes.TIPOEMPLEADO_LIST, criteria.list());

    countCriteria.setProjection(Projections.rowCount());
    try {
        params.put("cantidad", (Long) countCriteria.list().get(0));
    } catch (IndexOutOfBoundsException e) {
        params.put("cantidad", 0L);
    }

    return params;
}

From source file:mx.edu.um.mateo.rh.dao.impl.VacacionesEmpleadoDaoHibernate.java

/**
 * @see mx.edu.um.mateo.rh.dao.VacacionesEmpleadoDao#lista(java.util.Map)
 *//*from   w w w. j  av  a  2s  . com*/
@Override
public Map<String, Object> lista(Map<String, Object> params) {
    log.debug("Buscando lista de vacacionesEmpleados con params {}", params);
    if (params == null) {
        params = new HashMap<>();
    }

    if (!params.containsKey(Constantes.CONTAINSKEY_MAX)) {
        params.put(Constantes.CONTAINSKEY_MAX, 10);
    } else {
        params.put(Constantes.CONTAINSKEY_MAX, Math.min((Integer) params.get(Constantes.CONTAINSKEY_MAX), 100));
    }

    if (params.containsKey(Constantes.CONTAINSKEY_PAGINA)) {
        Long pagina = (Long) params.get(Constantes.CONTAINSKEY_PAGINA);
        Long offset = (pagina - 1) * (Integer) params.get(Constantes.CONTAINSKEY_MAX);
        params.put(Constantes.CONTAINSKEY_OFFSET, offset.intValue());
    }

    if (!params.containsKey(Constantes.CONTAINSKEY_OFFSET)) {
        params.put(Constantes.CONTAINSKEY_OFFSET, 0);
    }
    Criteria criteria = currentSession().createCriteria(VacacionesEmpleado.class);
    Criteria countCriteria = currentSession().createCriteria(VacacionesEmpleado.class);

    if (params.containsKey(Constantes.CONTAINSKEY_FILTRO)) {
        String filtro = (String) params.get(Constantes.CONTAINSKEY_FILTRO);
        Disjunction propiedades = Restrictions.disjunction();
        propiedades.add(Restrictions.ilike("descripcion", filtro, MatchMode.ANYWHERE));
        criteria.add(propiedades);
        countCriteria.add(propiedades);
    }

    if (params.containsKey(Constantes.CONTAINSKEY_ORDER)) {
        String campo = (String) params.get(Constantes.CONTAINSKEY_ORDER);
        if (params.get(Constantes.CONTAINSKEY_SORT).equals(Constantes.CONTAINSKEY_DESC)) {
            criteria.addOrder(Order.desc(campo));
        } else {
            criteria.addOrder(Order.asc(campo));
        }
    }

    if (!params.containsKey(Constantes.CONTAINSKEY_REPORTE)) {
        criteria.setFirstResult((Integer) params.get(Constantes.CONTAINSKEY_OFFSET));
        criteria.setMaxResults((Integer) params.get(Constantes.CONTAINSKEY_MAX));
    }
    params.put(Constantes.CONTAINSKEY_VACACIONESEMPLEADO, criteria.list());

    countCriteria.setProjection(Projections.rowCount());
    params.put(Constantes.CONTAINSKEY_CANTIDAD, (Long) countCriteria.list().get(0));

    return params;
}

From source file:net.databinder.models.hib.CriteriaFilterAndSort.java

License:Open Source License

public void buildUnordered(Criteria criteria) {
    super.buildUnordered(criteria);

    Conjunction conj = Restrictions.conjunction();

    for (Map.Entry<String, String> entry : (Set<Map.Entry<String, String>>) filterMap.entrySet()) {
        // System.out.println(String.format("%s\t%s", entry.getKey(), entry.getValue()));
        String property = entry.getKey();
        String value = entry.getValue();
        if (value == null)
            continue;

        String prop = processProperty(criteria, property);
        Class clazz = PropertyResolver.getPropertyClass(property, beanClass);

        if (String.class.isAssignableFrom(clazz)) {
            String[] items = value.split("\\s+");
            for (String item : items) {
                Disjunction dist = Restrictions.disjunction();
                dist.add(Restrictions.ilike(prop, item, MatchMode.ANYWHERE));
                conj.add(dist);//  w  ww . j  a va 2 s .  c o  m
            }
        } else if (Number.class.isAssignableFrom(clazz)) {
            try {
                Matcher matcher = pattern.matcher(value);
                if (matcher.matches()) {
                    String qualifier = matcher.group(2);
                    value = matcher.group(4);
                    Number num = convertToNumber(value, clazz);
                    if (">".equals(qualifier))
                        conj.add(Restrictions.gt(prop, num));
                    else if ("<".equals(qualifier))
                        conj.add(Restrictions.lt(prop, num));
                    else if (">=".equals(qualifier))
                        conj.add(Restrictions.ge(prop, num));
                    else if ("<=".equals(qualifier))
                        conj.add(Restrictions.le(prop, num));
                } else
                    conj.add(Restrictions.eq(prop, convertToNumber(value, clazz)));
            } catch (ConversionException ex) {
                // ignore filter in this case
            }
        } else if (Boolean.class.isAssignableFrom(clazz)) {
            conj.add(Restrictions.eq(prop, Boolean.parseBoolean(value)));
        }
    }
    criteria.add(conj);
}

From source file:net.databinder.models.hib.CriteriaSearchAndSort.java

License:Apache License

public void buildUnordered(Criteria criteria) {
    super.buildUnordered(criteria);

    String searchText = (String) searchTextModel.getObject();
    if (searchText != null) {
        String[] items = searchText.split("\\s+");
        Conjunction conj = Restrictions.conjunction();

        List<String> properties = new ArrayList<String>();
        for (String prop : getSearchProperties())
            properties.add(processProperty(criteria, prop));

        for (String item : items) {
            Disjunction dist = Restrictions.disjunction();
            for (String prop : properties)
                dist.add(Restrictions.ilike(prop, item, MatchMode.ANYWHERE));
            conj.add(dist);/*from   w w w .j ava2s .co m*/
        }
        criteria.add(conj);
    }
}

From source file:net.jforum.core.hibernate.PrivateMessageDAO.java

License:Open Source License

/**
 * @see net.jforum.repository.PrivateMessageRepository#getFromInbox(net.jforum.entities.User)
 *//*from   w ww.  j a v a2  s. c o m*/
@SuppressWarnings("unchecked")
public List<PrivateMessage> getFromInbox(User user) {
    return this.session().createCriteria(this.persistClass).add(Restrictions.eq("toUser", user))
            .add(Restrictions.disjunction().add(Restrictions.eq("type", PrivateMessageType.NEW))
                    .add(Restrictions.eq("type", PrivateMessageType.READ))
                    .add(Restrictions.eq("type", PrivateMessageType.UNREAD)))
            .setComment("privateMessageDAO.getFromInbox").list();
}

From source file:net.jforum.repository.PrivateMessageDao.java

License:Open Source License

@SuppressWarnings("unchecked")
public List<PrivateMessage> getFromInbox(User user) {
    return session.createCriteria(this.persistClass).add(Restrictions.eq("toUser", user))
            .add(Restrictions.disjunction().add(Restrictions.eq("type", PrivateMessageType.NEW))
                    .add(Restrictions.eq("type", PrivateMessageType.READ))
                    .add(Restrictions.eq("type", PrivateMessageType.UNREAD)))
            .setComment("privateMessageDAO.getFromInbox").list();
}

From source file:net.longfalcon.newsj.persistence.hibernate.ReleaseDAOImpl.java

License:Open Source License

@Override
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public List<Release> searchReleasesByNameExludingCats(List<String> searchTokens, int limit,
        Collection<Integer> excludedCategoryIds) {
    Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Release.class);
    if (!searchTokens.isEmpty()) {
        Disjunction searchOr = Restrictions.disjunction();
        for (String searchToken : searchTokens) {
            searchOr.add(Restrictions.ilike("searchName", searchToken, MatchMode.ANYWHERE));
        }/*  ww w  .j  a v  a2s  . co  m*/
        criteria.add(searchOr);
    }

    if (!excludedCategoryIds.isEmpty()) {
        criteria.add(Restrictions.not(Restrictions.in("category.id", excludedCategoryIds)));
    }

    criteria.setMaxResults(limit);

    return criteria.list();
}

From source file:net.purnama.pureff.dao.AdjustmentDao.java

public List getAdjustmentList(int itemperpage, int page, String sort, String keyword) {
    Session session = this.sessionFactory.getCurrentSession();
    Criteria c = session.createCriteria(AdjustmentEntity.class);
    Disjunction disjunction = Restrictions.disjunction();
    disjunction.add(Restrictions.like("number", "%" + keyword + "%"));
    disjunction.add(Restrictions.like("warehouse_code", "%" + keyword + "%"));

    c.add(disjunction);/*w w  w .j  a va2  s  .  c  o m*/

    if (sort.contains("-")) {
        c.addOrder(Order.desc(sort.substring(1)));
    } else {
        c.addOrder(Order.asc(sort));
    }
    c.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    c.setFirstResult(itemperpage * (page - 1));
    c.setMaxResults(itemperpage);

    return c.list();
}

From source file:net.purnama.pureff.dao.AdjustmentDao.java

public int countAdjustmentList(String keyword) {
    Session session = this.sessionFactory.getCurrentSession();
    Criteria c = session.createCriteria(AdjustmentEntity.class);

    Disjunction disjunction = Restrictions.disjunction();
    disjunction.add(Restrictions.like("number", "%" + keyword + "%"));
    disjunction.add(Restrictions.like("warehouse_code", "%" + keyword + "%"));

    c.add(disjunction);// w  w  w. j  ava 2 s  . co  m
    c.setProjection(Projections.rowCount());
    List result = c.list();
    int resultint = Integer.valueOf(result.get(0).toString());

    return resultint;
}

From source file:net.purnama.pureff.dao.DeliveryDao.java

public List getDeliveryList(int itemperpage, int page, String sort, String keyword) {
    Session session = this.sessionFactory.getCurrentSession();
    Criteria c = session.createCriteria(DeliveryEntity.class);
    Disjunction disjunction = Restrictions.disjunction();
    disjunction.add(Restrictions.like("number", "%" + keyword + "%"));
    disjunction.add(Restrictions.like("warehouse_code", "%" + keyword + "%"));
    disjunction.add(Restrictions.like("destination", "%" + keyword + "%"));

    c.add(disjunction);//from ww w.j a  v a  2  s .com

    if (sort.contains("-")) {
        c.addOrder(Order.desc(sort.substring(1)));
    } else {
        c.addOrder(Order.asc(sort));
    }
    c.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    c.setFirstResult(itemperpage * (page - 1));
    c.setMaxResults(itemperpage);

    return c.list();
}