List of usage examples for org.hibernate.criterion Restrictions or
public static Disjunction or(Criterion... predicates)
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(); }