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 Disjunction or(Criterion... predicates) 

Source Link

Document

Return the disjuction of multiple expressions

Usage

From source file:br.com.OCTur.control.DAO.PacoteDAO.java

public List<Pacote> pegarPorCidade(Cidade cidade) {
    List<Hotel> hoteis = new HotelDAO().pegarPorCidade(cidade);
    List<Voo> voos = new VooDAO().pegarPorDestino(cidade);
    Criterion[] criterios = new Criterion[2];
    if (!hoteis.isEmpty()) {
        criterios[0] = Restrictions.in("hotel", hoteis);
    }//from  www .ja v  a 2 s  . co  m
    if (!voos.isEmpty()) {
        criterios[1] = Restrictions.in("voo", voos);
    }
    if (hoteis.isEmpty() && voos.isEmpty()) {
        closeSession();
        return entitys;
    }
    entitys = criteria.add(Restrictions.or(criterios)).list();
    closeSession();
    return entitys;
}

From source file:br.com.OCTur.control.DAO.PacoteDAO.java

public List<Pacote> pegarPorCidadeInicio(Cidade cidade, Date inicio) {
    List<Hotel> hoteis = new HotelDAO().pegarPorCidade(cidade);
    List<Voo> voos = new VooDAO().pegarPorDestino(cidade);
    Criterion[] criterios = new Criterion[2];
    if (!hoteis.isEmpty()) {
        criterios[0] = Restrictions.in("hotel", hoteis);
    }//from  w  w  w .  j ava  2s .  c  om
    if (!voos.isEmpty()) {
        criterios[1] = Restrictions.in("voo", voos);
    }
    if (hoteis.isEmpty() && voos.isEmpty()) {
        closeSession();
        return entitys;
    }
    entitys = criteria.add(Restrictions.or(criterios)).add(Restrictions.eq("inicio", inicio)).list();
    closeSession();
    return entitys;
}

From source file:br.com.OCTur.control.DAO.PacoteDAO.java

public List<Pacote> pegarPorCidadeFim(Cidade cidade, Date fim) {
    List<Hotel> hoteis = new HotelDAO().pegarPorCidade(cidade);
    List<Voo> voos = new VooDAO().pegarPorDestino(cidade);
    Criterion[] criterios = new Criterion[2];
    if (!hoteis.isEmpty()) {
        criterios[0] = Restrictions.in("hotel", hoteis);
    }//www .ja va2s. c o  m
    if (!voos.isEmpty()) {
        criterios[1] = Restrictions.in("voo", voos);
    }
    if (hoteis.isEmpty() && voos.isEmpty()) {
        closeSession();
        return entitys;
    }
    entitys = criteria.add(Restrictions.or(criterios)).add(Restrictions.eq("fim", fim)).list();
    closeSession();
    return entitys;
}

From source file:br.com.webbudget.domain.model.repository.financial.FixedMovementRepository.java

License:Open Source License

/**
 *
 * @param filter//from   ww w  .j  a  va 2s  . c o  m
 * @param pageRequest
 * @return
 */
@Override
public Page<FixedMovement> listByFilter(String filter, PageRequest pageRequest) {

    final Criteria criteria = this.createCriteria();

    final List<Criterion> criterions = new ArrayList<>();

    // filtramos
    if (filter != null && !filter.isEmpty()) {

        criterions.add(Restrictions.ilike("description", "%" + filter + "%"));
        criterions.add(Restrictions.ilike("identification", "%" + filter + "%"));

        // se conseguir castar para bigdecimal trata como um filtro
        try {
            criterions.add(Restrictions.eq("value", new BigDecimal(filter)));
        } catch (NumberFormatException ex) {
        }
    }

    criteria.add(Restrictions.or(criterions.toArray(new Criterion[] {})));

    // projetamos para pegar o total de paginas possiveis
    criteria.setProjection(Projections.count("id"));

    final Long totalRows = (Long) criteria.uniqueResult();

    // limpamos a projection para que a criteria seja reusada
    criteria.setProjection(null);
    criteria.setResultTransformer(Criteria.ROOT_ENTITY);

    // paginamos
    criteria.setFirstResult(pageRequest.getFirstResult());
    criteria.setMaxResults(pageRequest.getPageSize());

    if (pageRequest.getSortDirection() == PageRequest.SortDirection.ASC) {
        criteria.addOrder(Order.asc(pageRequest.getSortField()));
    } else if (pageRequest.getSortDirection() == PageRequest.SortDirection.DESC) {
        criteria.addOrder(Order.desc(pageRequest.getSortField()));
    }

    // montamos o resultado paginado
    return new Page<>(criteria.list(), totalRows);
}

From source file:br.com.webbudget.domain.model.repository.financial.MovementRepository.java

License:Open Source License

/**
 *
 * @param filter/*from www  .  j ava  2  s . c o m*/
 * @param pageRequest
 * @return
 */
@Override
public Page<Movement> listByFilter(MovementFilter filter, PageRequest pageRequest) {

    final Criteria criteria = this.createCriteria();

    final List<Criterion> criterions = new ArrayList<>();

    criteria.createAlias("contact", "co", JoinType.LEFT_OUTER_JOIN);
    criteria.createAlias("apportionments", "ap");
    criteria.createAlias("ap.movementClass", "mc");
    criteria.createAlias("ap.costCenter", "cc");
    criteria.createAlias("financialPeriod", "fp");

    // montramos os criterios de filtragem geral
    if (filter.hasCriteria()) {
        criterions.add(Restrictions.eq("code", filter.getCriteria()));
        criterions.add(Restrictions.ilike("description", "%" + filter.getCriteria() + "%"));
        criterions.add(Restrictions.ilike("mc.name", "%" + filter.getCriteria() + "%"));
        criterions.add(Restrictions.ilike("cc.name", "%" + filter.getCriteria() + "%"));
        criterions.add(Restrictions.ilike("co.name", "%" + filter.getCriteria() + "%"));

        // se conseguir castar para bigdecimal trata como um filtro
        try {
            criterions.add(Restrictions.eq("value", filter.criteriaToBigDecimal()));
        } catch (ParseException ex) {
        }
    }

    criteria.add(Restrictions.or(criterions.toArray(new Criterion[] {})));
    criteria.add(Restrictions.and(filter.getCustomFilters()));

    // projetamos para pegar o total de paginas possiveis
    criteria.setProjection(Projections.count("id"));

    final Long totalRows = (Long) criteria.uniqueResult();

    // limpamos a projection para que a criteria seja reusada
    criteria.setProjection(null);
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    // paginamos
    criteria.setFirstResult(pageRequest.getFirstResult());
    criteria.setMaxResults(pageRequest.getPageSize());

    // aplica o multisort dos campos
    if (pageRequest.isMultiSort()) {
        pageRequest.getMultiSortFields().stream().forEach(field -> {
            if (field.getDirection() == SortDirection.ASC) {
                criteria.addOrder(Order.asc(field.getSortField()));
            } else if (field.getDirection() == SortDirection.DESC) {
                criteria.addOrder(Order.desc(field.getSortField()));
            }
        });
    } else if (pageRequest.getSortDirection() == SortDirection.ASC) {
        criteria.addOrder(Order.asc(pageRequest.getSortField()));
    } else if (pageRequest.getSortDirection() == SortDirection.DESC) {
        criteria.addOrder(Order.desc(pageRequest.getSortField()));
    }

    // montamos o resultado paginado
    return new Page<>(criteria.list(), totalRows);
}

From source file:com.bean.DirectoryAdminBean.java

public List<Directory> getAllDirectory() {
    Dao dao = new Dao();
    List<Directory> list = null;
    if (searchkey == null || searchkey.equals(null) || searchkey.equals("")) {
        list = dao.getByCondition(Directory.class, Order.desc("dirId"));
    } else {/* w w w .j ava  2 s  .  c o  m*/
        Criterion name = Restrictions.like("dirName", "%" + searchkey + "%");
        Criterion address = Restrictions.like("dirAddress", "%" + searchkey + "%");
        Criterion web = Restrictions.like("dirWebsite", "%" + searchkey + "%");
        Criterion desc = Restrictions.like("dirDescription", "%" + searchkey + "%");
        Criterion phone = Restrictions.like("dirPhone", "%" + searchkey + "%");
        Disjunction orExp = Restrictions.or(new Criterion[] { name, address, web, desc, phone });
        list = dao.getByCondition(Directory.class, orExp, Order.desc("dirId"));
    }
    return list;
}

From source file:com.bean.FeedbackBean.java

public List<Feedback> getAllFeedback() {
    Dao dao = new Dao();
    List<Feedback> list = null;
    if (searchkey == null || searchkey.equals(null) || searchkey.equals("")) {
        Order o = Order.desc("feedDate");
        list = dao.getByCondition(Feedback.class, o);
    } else {/*www . j  av a  2  s. c o  m*/
        Criterion name = Restrictions.like("feedCustomerName", "%" + searchkey + "%");
        Criterion mail = Restrictions.like("feedEmail", "%" + searchkey + "%");
        Criterion phone = Restrictions.like("feedPhone", "%" + searchkey + "%");
        Criterion msg = Restrictions.like("feedMessage", "%" + searchkey + "%");
        Order o = Order.desc("feedDate");
        Disjunction orExp = Restrictions.or(new Criterion[] { name, mail, phone, msg });
        list = dao.getByCondition(Feedback.class, orExp, o);
    }
    return list;
}

From source file:com.eryansky.common.orm.core.hibernate.restriction.CriterionSingleValueSupport.java

License:Apache License

public Criterion build(PropertyFilter filter) {
    String matchValue = filter.getMatchValue();
    Class<?> FieldType = filter.getFieldType();

    MatchValue matchValueModel = getMatchValue(matchValue, FieldType);

    Junction criterion = null;//from   ww w .  ja  v  a  2s . co m

    if (matchValueModel.hasOrOperate()) {
        criterion = Restrictions.disjunction();
    } else {
        criterion = Restrictions.conjunction();
    }

    for (Object value : matchValueModel.getValues()) {

        if (filter.hasMultiplePropertyNames()) {
            List<Criterion> disjunction = new ArrayList<Criterion>();
            for (String propertyName : filter.getPropertyNames()) {
                disjunction.add(build(propertyName, value));
            }
            criterion.add(Restrictions.or(disjunction.toArray(new Criterion[disjunction.size()])));
        } else {
            criterion.add(build(filter.getSinglePropertyName(), value));
        }

    }

    return criterion;
}

From source file:com.eucalyptus.cloudformation.entity.StackEntityManager.java

License:Open Source License

public static List<StackEntity> listStacks(String accountId, List<StackEntity.Status> statusValues) {
    List<StackEntity> returnValue = Lists.newArrayList();
    try (TransactionResource db = Entities.transactionFor(StackEntity.class)) {
        Criteria criteria = Entities.createCriteria(StackEntity.class)
                .add(Restrictions.eq("accountId", accountId));
        if (statusValues != null && !statusValues.isEmpty()) {
            Criterion[] orClauses = new Criterion[statusValues.size()];
            int ctr = 0;
            for (StackEntity.Status statusValue : statusValues) {
                orClauses[ctr++] = Restrictions.eq("stackStatus", statusValue);
            }//from   www. j  av  a  2s .c  o m
            criteria.add(Restrictions.or(orClauses));
        }
        returnValue = criteria.list();
        db.commit();
    }
    return returnValue;
}

From source file:com.mac.green_leaves.v1.master.MasterRepository.java

public List<Model> list(String keyword, Integer pageNumber, Integer branch, Class modelClass) {
    Session session = getSession();//  w ww  .  j a v a 2  s .  com

    Criteria criteria = session.createCriteria(modelClass);

    if (keyword != null) {
        Field[] fields = modelClass.getDeclaredFields();
        ArrayList<Criterion> criterions = new ArrayList<>();
        for (Field field : fields) {
            if (field.getType().isAssignableFrom(String.class)) {
                criterions.add(Restrictions.ilike(field.getName(), keyword, MatchMode.ANYWHERE));
            }
        }
        criteria.add(Restrictions.or(criterions.toArray(new Criterion[] {})));
    }

    criteria.add(Restrictions.eq("branch", branch));

    if (pageNumber != null) {
        criteria.setFirstResult(PAGE_SIZE * (pageNumber - 1));
        criteria.setMaxResults(PAGE_SIZE);
    }

    return criteria.list();
}