Example usage for org.hibernate.criterion Projections count

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

Introduction

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

Prototype

public static CountProjection count(String propertyName) 

Source Link

Document

A property value count projection

Usage

From source file:br.luck.contar.LotomaniaContar.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(LotomaniaModel.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 {// ww w  . jav  a 2s .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));
}

From source file:br.luck.contar.MegasenaContar.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(MegasenaModel.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 {//  w w w.j  a  va  2s  .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));
}

From source file:br.ufac.sion.dao.InscricaoFacade.java

@Override
public Map<Date, Long> inscricoesPorData(Concurso concurso, SituacaoInscricao situacao) {
    Session session = em.unwrap(Session.class);
    Criteria criteria = session.createCriteria(Inscricao.class);

    LocalDateTime dataInicial = concurso.getDataInicioInscricao();

    Integer dias = Period.between(concurso.getDataInicioInscricao().toLocalDate(),
            concurso.getDataTerminoIncricao().toLocalDate()).getDays();
    Map<Date, Long> resultado = criaMapaVazio(dias, dataInicial);

    criteria.createAlias("cargoConcurso", "cc")
            .setProjection(Projections.projectionList()
                    .add(Projections.sqlGroupProjection("date(data_inscricao) as data", "date(data_inscricao)",
                            new String[] { "data" }, new Type[] { StandardBasicTypes.DATE }))
                    .add(Projections.count("id").as("quantidade")))
            .add(Restrictions.ge("dataInscricao", dataInicial)).add(Restrictions.eq("cc.concurso", concurso));

    if (situacao != null) {
        criteria.add(Restrictions.eq("status", situacao.CONFIRMADA));
    }/*from  w  w w .ja  v  a 2 s  .c  om*/

    List<DataQuantidade> quantidadesPorData = criteria
            .setResultTransformer(Transformers.aliasToBean(DataQuantidade.class)).list();

    for (DataQuantidade quantidadeData : quantidadesPorData) {
        resultado.put(quantidadeData.getData(), quantidadeData.getQuantidade());
    }

    return resultado;
}

From source file:ca.qc.cegepoutaouais.tge.pige.server.ManagementServiceImpl.java

License:Open Source License

@Override
public void createUser(UserDetail userDetail) throws PigeException, UserCreationException {

    PermissionHelper.checkUserManagementPermission(getThreadLocalRequest());

    logger.debug("Ajout d'un nouveau compte avec les dtails: " + userDetail.asString() + " ...");

    String password = userDetail.getPassword();
    userDetail.setPassword(ServerUtil.produceSHA1(userDetail.getPassword()));
    Session session = null;/* w w w.j  a v a  2  s .  c o  m*/
    Transaction tx = null;

    try {

        session = PigeHibernateUtil.openSession();
        tx = session.beginTransaction();

        // S'assurer qu'aucun autre compte utilise le mme identifiant.
        Integer count = (Integer) session.createCriteria(User.class)
                .setProjection(Projections.count(User.IDENTIFIER_REF))
                .add(Restrictions.eq(User.IDENTIFIER_REF, userDetail.getIdentifier())).uniqueResult();
        tx.commit();

        if (count > 0) {
            throw new UserCreationException("L'identifiant choisi est dj utilis par un autre compte.");
        }

        tx = session.beginTransaction();
        User account = new User(userDetail);
        Role role = (Role) session.load(Role.class, userDetail.getRoleId());
        account.setRole(role);
        session.save(account);
        tx.commit();
        logger.debug("Ajout russie!");

        final Properties props = Configurations.getProperties();
        EmailService email = new EmailService();
        email.setRecipient(userDetail.getEmail());
        email.setSubjet(props.getProperty("msg.user.email.user_creation.subject"));
        email.setBody(MessageFormat.format(props.getProperty("msg.user.email.user_creation.body"),
                userDetail.getFirstname(), userDetail.getIdentifier(), password), true);
        email.sendAsync();

    } catch (HibernateException hex) {
        logger.error(hex);
        if (tx != null) {
            tx.rollback();
        }
    } finally {
        if (session != null) {
            session.close();
        }
    }

}

From source file:ca.qc.cegepoutaouais.tge.pige.server.ManagementServiceImpl.java

License:Open Source License

/**
 * Pour le service d'importation d'usagers.
 *//* ww  w.j a v  a  2  s .  c o m*/
public void createUser(UserDetail userDetail, HttpServletRequest request)
        throws PigeException, UserCreationException {

    PermissionHelper.checkUserManagementPermission(request);

    logger.debug("Ajout d'un nouveau compte avec les dtails: " + userDetail.asString() + " ...");

    String password = userDetail.getPassword();
    userDetail.setPassword(ServerUtil.produceSHA1(userDetail.getPassword()));
    Session session = null;
    Transaction tx = null;

    try {

        session = PigeHibernateUtil.openSession();
        tx = session.beginTransaction();

        // S'assurer qu'aucun autre compte utilise le mme identifiant.
        Integer count = (Integer) session.createCriteria(User.class)
                .setProjection(Projections.count(User.IDENTIFIER_REF))
                .add(Restrictions.eq(User.IDENTIFIER_REF, userDetail.getIdentifier())).uniqueResult();
        tx.commit();

        if (count > 0) {
            throw new UserCreationException("L'identifiant choisi est dj utilis par un autre compte.");
        }

        tx = session.beginTransaction();
        User account = new User(userDetail);
        Role role = (Role) session.load(Role.class, userDetail.getRoleId());
        account.setRole(role);
        session.save(account);
        tx.commit();
        logger.debug("Ajout russie!");

        final Properties props = Configurations.getProperties();
        EmailService email = new EmailService();
        email.setRecipient(userDetail.getEmail());
        email.setSubjet(props.getProperty("msg.user.email.user_creation.subject"));
        email.setBody(MessageFormat.format(props.getProperty("msg.user.email.user_creation.body"),
                userDetail.getFirstname(), userDetail.getIdentifier(), password), true);
        email.sendAsync();

    } catch (HibernateException hex) {
        logger.error(hex);
        if (tx != null) {
            tx.rollback();
        }
    } finally {
        if (session != null) {
            session.close();
        }
    }

}

From source file:ca.qc.cegepoutaouais.tge.pige.server.ManagementServiceImpl.java

License:Open Source License

@Override
public void createRole(Role role) throws PigeException, RoleCreationException {

    PermissionHelper.checkRoleManagementPermission(getThreadLocalRequest());

    logger.debug("Ajout d'un nouveau role avec les dtails: " + role.asString() + " ...");

    Session session = null;/*from  ww w  .j a  va2s . c  o  m*/
    Transaction tx = null;

    try {

        session = PigeHibernateUtil.openSession();
        tx = session.beginTransaction();

        // S'assurer qu'aucun autre rle utilise le mme identifiant.
        Integer count = (Integer) session.createCriteria(Role.class)
                .setProjection(Projections.count(Role.NAME_REF))
                .add(Restrictions.eq(Role.NAME_REF, role.getName())).uniqueResult();
        tx.commit();

        if (count > 0) {
            throw new RoleCreationException("Le nom choisi est dj utilis par un autre rle.");
        }

        tx = session.beginTransaction();
        session.save(role);
        tx.commit();
        logger.debug("Ajout russie!");
    } catch (HibernateException hex) {
        logger.error(hex);
        if (tx != null) {
            tx.rollback();
        }
    } finally {
        if (session != null) {
            session.close();
        }
    }

}

From source file:ch.qos.logback.audit.persistent.AuditEventDAO.java

License:Open Source License

@SuppressWarnings("unchecked")
static public List<Object[]> findMaxObject() throws HibernateException {
    Session s = null;//from   www  .j av a 2  s  .  com
    try {
        s = openSession();

        //Query q = s.createQuery("select count(ae.subject), ae.subject FROM "+ AE_CLASS + " AS ae "+
        //"GROUP BY ae.subject ORDER BY count(ae.subject) desc");

        Criteria crit = s.createCriteria(AuditEvent.class);
        crit.setProjection(Projections.projectionList().add(Projections.count("object").as("gcount"))
                .add(Projections.groupProperty("object")));
        crit.addOrder(Order.desc("gcount"));
        crit.setMaxResults(10);
        return crit.list();
    } finally {
        close(s);
    }
}

From source file:com.amalto.core.storage.hibernate.StandardQueryHandler.java

License:Open Source License

@Override
public StorageResults visit(OrderBy orderBy) {
    TypedExpression orderByExpression = orderBy.getExpression();
    CriterionFieldCondition fieldCondition = new CriterionFieldCondition();
    FieldCondition condition = orderByExpression.accept(fieldCondition);
    if (orderByExpression instanceof Field) {
        Field field = (Field) orderByExpression;
        FieldMetadata userFieldMetadata = field.getFieldMetadata();
        ComplexTypeMetadata containingType = getContainingType(userFieldMetadata);
        Set<String> aliases = getAliases(containingType, field);
        condition.criterionFieldNames = new ArrayList<>(aliases.size());
        for (String alias : aliases) {
            addCondition(condition, alias, userFieldMetadata);
        }//from   w  w  w .  j  a v  a2 s  . co  m
    }
    if (orderByExpression instanceof Count) {
        Count count = (Count) orderByExpression;
        String propertyName = count.getExpression().accept(fieldCondition).criterionFieldNames.get(0);
        ProjectionList list = projectionList;
        if (projectionList instanceof ReadOnlyProjectionList) {
            list = ((ReadOnlyProjectionList) projectionList).inner();
        }
        list.add(Projections.groupProperty(propertyName));
        String alias = "x_talend_countField" + countAggregateIndex++; //$NON-NLS-1$
        list.add(Projections.count(propertyName).as(alias));
        switch (orderBy.getDirection()) {
        case ASC:
            criteria.addOrder(Order.asc(alias));
            break;
        case DESC:
            criteria.addOrder(Order.desc(alias));
            break;
        }
    }
    if (condition != null) {
        for (String fieldName : condition.criterionFieldNames) {
            OrderBy.Direction direction = orderBy.getDirection();
            switch (direction) {
            case ASC:
                criteria.addOrder(Order.asc(fieldName));
                break;
            case DESC:
                criteria.addOrder(Order.desc(fieldName));
                break;
            }
        }
    }
    return null;
}

From source file:com.arg.arsoft.siantluis.repository.imp.CustomerRepository.java

@Override
public Map findByQuery(CustomerQuery query) {
    int pageSize = Configs.PAGE_SIZE;
    Criteria criteria = factory.getCurrentSession().createCriteria(Customer.class);
    if (query.getCode() != null && !query.getCode().equals("")) {
        if (query.getCode().contains("*") || query.getCode().contains("?")) {
            criteria.add(Expression.like("code", query.getCode().replace("*", "%").replace("?", "_")));
        } else {/*from   w  ww  .j  a va  2  s .co m*/
            criteria.add(Expression.eq("code", query.getCode()));
        }
    }
    if (query.getName() != null && !query.getName().equals("")) {
        if (query.getName().contains("*") || query.getName().contains("?")) {
            criteria.add(Expression.like("name", query.getName().replace("*", "%").replace("?", "_")));
        } else {
            criteria.add(Expression.eq("name", query.getName()));
        }
    }
    if (query.getCompany() != null && !query.getCompany().equals("")) {
        if (query.getCompany().contains("*") || query.getCompany().contains("?")) {
            criteria.add(Expression.like("company", query.getCompany().replace("*", "%").replace("?", "_")));
        } else {
            criteria.add(Expression.eq("company", query.getCompany()));
        }
    }
    if (query.getContactName() != null && !query.getContactName().equals("")) {
        if (query.getContactName().contains("*") || query.getContactName().contains("?")) {
            criteria.add(Expression.like("contact.contactName",
                    query.getContactName().replace("*", "%").replace("?", "_")));

        } else {
            criteria.add(Expression.eq("contact.contactName", query.getContactName()));
        }
    }
    if (query.getProvince() != null && query.getProvince() != 0) {
        criteria.createAlias("address.province", "p", JoinType.LEFT_OUTER_JOIN);
        criteria.add(Expression.eq("p.id", query.getProvince()));
    }
    List<CustomerType> types = new ArrayList<CustomerType>();
    if (query.getFlagCompany().equals("Y")) {
        types.add(CustomerType.C);
    }
    if (query.getFlagPersonal().equals("Y")) {
        types.add(CustomerType.P);
    }

    if (types.size() > 0) {
        criteria.add(Expression.in("customerType", types.toArray()));
    }

    long totalRecord = (long) criteria.setProjection(Projections.count(Projections.id().toString()))
            .uniqueResult();

    criteria.setProjection(null);

    int start = ((query.getPage() - 1) * pageSize);
    criteria.setFetchMode("address.province", FetchMode.JOIN);
    criteria.setFetchMode("address.amphur", FetchMode.JOIN);
    List<Customer> result = criteria.setFirstResult(start).setMaxResults(pageSize)
            .setResultTransformer(Criteria.ROOT_ENTITY).list();

    long totalPage = totalRecord / pageSize;
    if ((totalRecord % pageSize) > 0) {
        totalPage++;
    }
    List<Integer> pages = new ArrayList<Integer>();
    for (int index = 1; index <= totalPage; index++) {
        pages.add(index);
    }

    Map data = new HashMap();
    data.put("list", result);
    data.put("totalPage", totalPage);
    data.put("totalRecord", totalRecord);
    data.put("pages", pages);

    System.out.println(pages.size());
    return data;
}

From source file:com.arg.arsoft.siantluis.repository.imp.EmployeeRepository.java

@Override
public Map findByQuery(EmployeeQuery query) {

    Session session = factory.getCurrentSession();
    Criteria criteria = session.createCriteria(Employee.class);
    if (query.getCode() != null && !query.getCode().equals("")) {
        if (query.getCode().contains("*") || query.getCode().contains("?")) {
            criteria.add(Expression.like("code", query.getCode().replace("*", "%").replace("?", "_")));
        } else {/*from   w  ww  . ja  va2 s. c om*/
            criteria.add(Expression.eq("code", query.getCode()));
        }

    }
    if (query.getFirstName() != null && !query.getFirstName().equals("")) {
        if (query.getFirstName().contains("*") || query.getFirstName().contains("?")) {
            criteria.add(
                    Expression.like("firstName", query.getFirstName().replace("*", "%").replace("?", "_")));
        } else {
            criteria.add(Expression.eq("firstName", query.getFirstName()));
        }
    }
    if (query.getLastName() != null && !query.getLastName().equals("")) {
        if (query.getLastName().contains("*") || query.getLastName().contains("?")) {
            criteria.add(Expression.like("lastName", query.getLastName().replace("*", "%").replace("?", "_")));
        } else {
            criteria.add(Expression.eq("lastName", query.getLastName()));
        }
    }

    long totalRecord = (long) criteria.setProjection(Projections.count(Projections.id().toString()))
            .uniqueResult();
    long totalPage = totalRecord / Configs.PAGE_SIZE;
    if ((totalRecord % Configs.PAGE_SIZE) > 0) {
        totalPage++;
    }
    criteria.setProjection(null);
    int start = ((query.getPage() - 1) * Configs.PAGE_SIZE);//+ 1;
    List<Employee> result = criteria.setFetchMode("title", FetchMode.JOIN)
            .setFetchMode("position", FetchMode.JOIN).setFirstResult(start).setMaxResults(Configs.PAGE_SIZE)
            .setResultTransformer(Criteria.ROOT_ENTITY).list();
    List<Integer> pages = new ArrayList<Integer>();
    for (int index = 1; index <= totalPage; index++) {
        pages.add(index);
    }
    Map data = new HashMap();
    data.put("list", result);
    data.put("totalPage", totalPage);
    data.put("totalRecord", totalRecord);
    data.put("pages", pages);

    System.out.println(pages.size());
    return data;
}