Example usage for org.hibernate.criterion Projections rowCount

List of usage examples for org.hibernate.criterion Projections rowCount

Introduction

In this page you can find the example usage for org.hibernate.criterion Projections rowCount.

Prototype

public static Projection rowCount() 

Source Link

Document

The query row count, ie.

Usage

From source file:br.com.hrstatus.dao.impl.UsersDAO.java

License:Open Source License

public int searchUserChangePassNotLogged(String username) {

    log.fine("[ System ] searchUserChangePass(String username)[" + username + "]");
    final Criteria criteria = session().createCriteria(PassExpire.class);
    criteria.add(Restrictions.eq("username", username));
    criteria.setProjection(Projections.rowCount());
    final int count = ((Long) criteria.uniqueResult()).intValue();
    return count;
}

From source file:br.com.itw.commons.persistence.CoreRepository.java

License:Apache License

public Page<T> search(T entity, Pageable pageable) {
    if (pageable == null) {
        pageable = new PageRequest(0, 10);
    }//from ww w . j  a  va 2 s.  co m

    Session session = (Session) entityManager.getDelegate();
    Criteria criteria = session.createCriteria(entity.getClass());
    // Prepare Example
    Example example = Example.create(entity);
    criteria.add(example.enableLike(MatchMode.ANYWHERE).ignoreCase());

    // Count
    Long totalItems = (Long) criteria.setProjection(Projections.rowCount()).uniqueResult();

    // Pageable result Result
    criteria.setProjection(null).setResultTransformer(CriteriaSpecification.ROOT_ENTITY);
    List<T> result = criteria.setFirstResult((pageable.getPageNumber() - 1) * pageable.getPageSize())
            .setMaxResults(pageable.getPageSize()).list();
    return (Page<T>) new PageImpl<T>(result, pageable, totalItems);
}

From source file:br.com.itw.commons.persistence.PageableHelper.java

License:Apache License

public static Page<?> getPage(Criteria criteria, Pageable pageable) {
    // Count/*  ww w  . j av  a 2  s .  c  o  m*/
    Long totalItems = (Long) criteria.setProjection(Projections.rowCount()).uniqueResult();

    // Pageable result Result
    criteria.setProjection(null).setResultTransformer(CriteriaSpecification.ROOT_ENTITY);
    if (pageable.getSort() != null) {
        Iterator<Sort.Order> orders = pageable.getSort().iterator();
        while (orders.hasNext()) {
            Sort.Order order = orders.next();
            if (order.getDirection() == null || Sort.Direction.ASC.equals(order.getDirection())) {
                criteria.addOrder(Order.asc(order.getProperty()));
            } else {
                criteria.addOrder(Order.desc(order.getProperty()));
            }
        }
    }
    List<?> result = criteria.setFirstResult(pageable.getPageNumber() * pageable.getPageSize())
            .setMaxResults(pageable.getPageSize()).list();
    return (Page<?>) new PageImpl<>(result, pageable, totalItems);
}

From source file:br.com.progolden.dneutils.utils.DNEUtils.java

License:Apache License

private Long countByCEP(String cep, Class<? extends EntityIF> entityClass) {
    Criteria criteria;//w  w  w . j a va  2s. c  o m
    Long count;
    LOGGER.debug("Contando ocorrncias do CEP " + cep + " na tabela " + entityClass.getCanonicalName());
    criteria = this.dao.newCriteria(entityClass);
    criteria.add(Restrictions.eq("cep", cep));
    criteria.setProjection(Projections.rowCount());
    count = this.dao.uniqueByCriteria(criteria, Long.class);
    LOGGER.debug("Contagem realizada: " + String.valueOf(count));
    return count;
}

From source file:br.com.surittec.suriee.framework.dao.DaoSupport.java

License:Open Source License

/**
 * Retorna a quantidade de registros//w  w  w . j  a  v  a  2 s.  c om
 * @return long
 */
public Long count() {
    return (Long) getSession().createCriteria(tipo).setProjection(Projections.rowCount()).uniqueResult();
}

From source file:br.com.surittec.suriee.framework.service.GenericRetrieveService.java

License:Open Source License

/**
 * Retorna a quantidade de registros da entidade do tipo <T> informada.
 * @param <T>/*w  w  w.j a  va  2 s . c  om*/
 * @param classe
 * @return long
 */
public <T> Long count(Class<T> classe) {
    return (Long) getSession().createCriteria(classe).setProjection(Projections.rowCount()).uniqueResult();
}

From source file:br.com.tcc.service.persistence.PaginationHelper.java

/**
 * <p>//  www  .j  a va2  s  .  co m
 * <b>ATENO:</b> Este mtodo <b>altera permanentemente</b> o objeto {@link Criteria} recebido como parmetro. Qualquer {@link Projection} ou {@link ResultTransformer} configurado no criteria
 * <b>ser substitudo</b>.
 * </p>
 * <p>
 * Use o parmetro <code>distinct</code> para definir se o {@link ResultTransformer} deve ser
 * {@link Criteria.DISTINCT_ROOT_ENTITY} ou apenas {@link Criteria.ROOT_ENTITY}
 * e se deve ser usado <code>distinct count(*)</code> ou apenas <code>count(*)</code>.
 * </p>
 * @param criteria O Criteria a ser utilizado
 * @param pagination O objeto com a paginao desejada.
 * @param distinct Se a consulta deve usar <code>SQL DISTINCT</code>.
 * @return Um novo objeto de paginao referente  consulta atual.
 */
private static Pagination getTotalItemsForCriteria(Criteria criteria, Pagination pagination, boolean distinct) {

    Projection count = Projections.rowCount();
    if (distinct) {
        count = Projections.distinct(count);
    }
    int totalItems = (Integer) criteria.setProjection(count).uniqueResult();
    criteria.setProjection(null)
            .setResultTransformer(distinct ? Criteria.DISTINCT_ROOT_ENTITY : Criteria.ROOT_ENTITY);
    return new Pagination(pagination.getPageSize(), pagination.getCurrentPage(), totalItems,
            pagination.getOrdering());

}

From source file:br.com.thiaguten.persistence.spi.provider.hibernate.HibernatePersistenceProvider.java

License:Apache License

/**
 * {@inheritDoc}//www.  j a v  a 2s .  c om
 */
@Override
public <ID extends Serializable, T extends Persistable<ID>, N extends Number> N countByCriteria(
        Class<T> entityClazz, Class<N> resultClazz, ResultTransformer resultTransformer,
        List<Criterion> criterions) {
    Criteria criteria = getSession().createCriteria(entityClazz);
    criteria.setProjection(Projections.rowCount());
    if (criterions != null) {
        for (Criterion c : criterions) {
            criteria.add(c);
        }
    }
    return (N) criteria.setResultTransformer(resultTransformer).uniqueResult();
}

From source file:br.gov.jfrj.siga.ex.bl.ExBL.java

License:Open Source License

public void numerarTudo(int aPartirDe) {
    List<ExDocumento> list = new ArrayList<ExDocumento>();

    final Criteria countCrit = dao().getSessao().createCriteria(ExDocumento.class)
            .add(Restrictions.gt("idDoc", new Long(aPartirDe)));
    countCrit.setProjection(Projections.rowCount());
    Integer totalDocs = ((Long) countCrit.uniqueResult()).intValue();

    final Criteria crit = dao().getSessao().createCriteria(ExDocumento.class)
            .add(Restrictions.gt("idDoc", new Long(aPartirDe)));
    crit.setMaxResults(60);/*from  w w  w . java  2s .  c  o m*/
    crit.addOrder(Order.asc("idDoc"));

    int index = 0;

    do {
        long inicio = System.currentTimeMillis();
        //System.gc();
        iniciarAlteracao();
        crit.setFirstResult(index);
        list = crit.list();
        for (ExDocumento doc : list) {
            index++;
            try {
                for (ExMovimentacao m : doc.getExMovimentacaoSet()) {
                    m.setNumPaginas(m.getContarNumeroDePaginas());
                    dao().gravar(m);
                }
            } catch (Throwable e) {
                System.out.println("Erro ao marcar o doc " + doc);
                e.printStackTrace();
            }
            if (index % 50 == 0) {
                //               System.gc();
            }
            System.out.print(doc.getIdDoc() + " ok - ");
        }
        ExDao.commitTransacao();
        dao().getSessao().clear();
        long duracao = System.currentTimeMillis() - inicio;
        System.out.println();
        System.out.println(new SimpleDateFormat("HH:mm:ss").format(new Date()) + " " + String.valueOf(index)
                + " numerados de " + totalDocs);
    } while (list.size() > 0);

    //System.gc();
}

From source file:br.gov.jfrj.siga.ex.bl.ExBL.java

License:Open Source License

public void marcarTudo(int primeiro, int ultimo, boolean efetivar, boolean apenasTemporalidade,
        PrintWriter out) {//from   ww  w.j a v  a2 s  . c  o  m

    List<ExDocumento> list = new ArrayList<ExDocumento>();

    final Criteria countCrit = dao().getSessao().createCriteria(ExDocumento.class)
            .add(Restrictions.ge("idDoc", new Long(primeiro)));
    if (ultimo != 0)
        countCrit.add(Restrictions.le("idDoc", new Long(ultimo)));
    countCrit.setProjection(Projections.rowCount());

    final Criteria crit = dao().getSessao().createCriteria(ExDocumento.class)
            .add(Restrictions.ge("idDoc", new Long(primeiro)));
    if (ultimo != 0)
        crit.add(Restrictions.le("idDoc", new Long(ultimo)));
    crit.setMaxResults(5);
    crit.addOrder(Order.asc("idDoc"));

    out.println("-----------------------------------------------");
    out.print(new SimpleDateFormat("HH:mm:ss").format(new Date()));
    out.print(" - Remarcando documentos.");
    out.print(" Primeiro: ");
    out.println(primeiro);
    if (ultimo != 0) {
        out.print(" Ultimo: ");
        out.println(ultimo);
    }
    if (efetivar)
        out.println("***EFETIVAR!!***");
    out.println("-----------------------------------------------");

    int index = 0;

    do {
        long inicio = System.currentTimeMillis();
        if (efetivar)
            iniciarAlteracao();
        crit.setFirstResult(index);
        list = crit.list();
        for (ExDocumento doc : list) {
            index++;
            StringBuilder msg = new StringBuilder();
            try {

                StringBuilder marcasAnteriores = new StringBuilder();
                for (ExMobil mob : doc.getExMobilSet()) {
                    marcasAnteriores.append(mob.isGeral() ? "0" : mob.getNumSequencia());
                    marcasAnteriores.append(" - ");
                    marcasAnteriores.append(mob.getMarcadoresDescrCompleta(apenasTemporalidade));
                }
                atualizarMarcasTemporalidade(doc);
                StringBuilder marcasPosteriores = new StringBuilder();
                for (ExMobil mob : doc.getExMobilSet()) {
                    marcasPosteriores.append(mob.isGeral() ? "0" : mob.getNumSequencia());
                    marcasPosteriores.append(" - ");
                    marcasPosteriores.append(mob.getMarcadoresDescrCompleta(apenasTemporalidade));
                }

                if (!marcasAnteriores.toString().equals(marcasPosteriores.toString())) {
                    msg.append("Marcas:");
                    msg.append("\n\tAntes: ");
                    msg.append(marcasAnteriores);
                    msg.append("\n\tDepois: ");
                    msg.append(marcasPosteriores);
                }

            } catch (Throwable e) {
                msg.append("ERRO: ");
                msg.append(e.getMessage());
                e.printStackTrace(out);
            }

            if (msg.length() > 0) {
                msg.insert(0, "\n");
                msg.insert(0, doc.getCodigo());
                msg.insert(0, " - ");
                msg.insert(0, new SimpleDateFormat("HH:mm:ss").format(new Date()));
                msg.insert(0, "\n");
                out.println(msg);
            }

        }
        if (efetivar) {
            ExDao.commitTransacao();
            //System.gc();
        }
        dao().getSessao().clear();
    } while (list.size() > 0);

    out.println("\n-----------------------------------------------");
    out.print(new SimpleDateFormat("HH:mm:ss").format(new Date()));
    out.println(" - Fim");
    out.println("-----------------------------------------------");

    //System.gc();
}