List of usage examples for org.hibernate.criterion Projections count
public static CountProjection count(String propertyName)
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; }