List of usage examples for org.hibernate.criterion Projections count
public static CountProjection count(String propertyName)
From source file:br.com.webbudget.domain.model.repository.financial.FixedMovementRepository.java
License:Open Source License
/** * * @param filter//from w ww . j a v a2s .co 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.LaunchRepository.java
License:Open Source License
/** * /*from ww w. j a va 2 s. c o m*/ * @param fixedMovement * @return */ @Override public Long countByFixedMovement(FixedMovement fixedMovement) { final Criteria criteria = this.createCriteria(); criteria.createAlias("fixedMovement", "fm"); criteria.add(Restrictions.eq("fm.id", fixedMovement.getId())); // projetamos para pegar o total de paginas possiveis criteria.setProjection(Projections.count("id")); return (Long) criteria.uniqueResult(); }
From source file:br.com.webbudget.domain.model.repository.financial.LaunchRepository.java
License:Open Source License
/** * /*from w ww .j a v a 2s .c om*/ * @param fixedMovement * @param pageRequest * @return */ @Override public Page<Launch> listByFixedMovement(FixedMovement fixedMovement, PageRequest pageRequest) { final Criteria criteria = this.createCriteria(); criteria.createAlias("fixedMovement", "fm"); criteria.add(Restrictions.eq("fm.id", fixedMovement.getId())); // 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 w w w .j a va 2s .com * @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:br.com.webbudget.domain.model.repository.logbook.RefuelingRepository.java
License:Open Source License
/** * * @param filter/*from w w w .java 2 s . c o m*/ * @param pageRequest * @return */ @Override public Page<Refueling> listLazily(String filter, PageRequest pageRequest) { final Criteria criteria = this.createCriteria(); if (StringUtils.isNotBlank(filter)) { // TODO colocar os filtros aqui } // 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.miscellany.FinancialPeriodRepository.java
License:Open Source License
/** * // w ww . ja va 2 s .c o m * @param isClosed * @param pageRequest * @return */ @Override public Page<FinancialPeriod> listByStatusLazily(Boolean isClosed, PageRequest pageRequest) { final Criteria criteria = this.createCriteria(); if (isClosed != null) { criteria.add(Restrictions.eq("closed", isClosed)); } // 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.tools.MessageRepository.java
License:Open Source License
/** * //from ww w. ja v a 2 s .c o m * @param sender * @param filter * @param pageRequest * @return */ @Override public Page<Message> listSent(User sender, String filter, PageRequest pageRequest) { final Criteria criteria = this.createCriteria(); if (filter != null) { criteria.add(Restrictions.or(Restrictions.ilike("title", "%" + filter + "%"), Restrictions.ilike("content", "%" + filter + "%"))); } criteria.add(Restrictions.eq("deleted", false)); criteria.add(Restrictions.eq("sender", sender)); // 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.tools.UserMessageRepository.java
License:Open Source License
/** * // w w w . jav a 2 s . com * @param recipient * @return */ @Override public long countUnread(User recipient) { final Criteria criteria = this.createCriteria(); criteria.add(Restrictions.eq("read", false)); criteria.add(Restrictions.eq("recipient", recipient)); // projetamos para pegar o total de paginas possiveis criteria.setProjection(Projections.count("id")); return (Long) criteria.uniqueResult(); }
From source file:br.com.webbudget.domain.model.repository.tools.UserMessageRepository.java
License:Open Source License
/** * /*from www . j a v a 2 s . c o m*/ * @param recipient * @param filter * @param pageRequest * @return */ @Override public Page<UserMessage> listReceived(User recipient, String filter, PageRequest pageRequest) { final Criteria criteria = this.createCriteria(); if (filter != null) { criteria.createAlias("message", "ms"); criteria.add(Restrictions.or(Restrictions.ilike("ms.title", "%" + filter + "%"), Restrictions.ilike("ms.content", "%" + filter + "%"))); } criteria.add(Restrictions.eq("deleted", false)); criteria.add(Restrictions.eq("recipient", recipient)); // 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.luck.contar.LotofacilContar.java
@Override protected int obterQuantidade(String bola, long concursoinicio, long concursoFim, int colunaInicio, int colunaFim) throws Exception { List<Long> lista = new ArrayList<Long>(); long quantidade = 0; for (int coluna = colunaInicio; coluna <= colunaFim; coluna++) { Criteria criteria = getSession().createCriteria(LotofacilModel.class); String col = String.valueOf((coluna < 10) ? "0" + coluna : coluna); criteria.setProjection(Projections.count("bola" + col)); criteria.add(Restrictions.eq("bola" + col, bola)); criteria.add(Restrictions.between("concurso", concursoinicio, concursoFim)); try {/*from ww w . j a v a 2 s . c o m*/ lista.add((Long) criteria.uniqueResult()); } catch (Exception e) { throw new Exception(e.getMessage()); } } // Percorre a lista somando os resultados for (Long soma : lista) { quantidade = quantidade + soma; } return Integer.parseInt(String.valueOf(quantidade)); }