List of usage examples for org.hibernate.criterion Projections count
public static CountProjection count(String propertyName)
From source file:org.opensingular.flow.test.TestDAO.java
License:Apache License
public Integer countHistoty() { return ((Number) getSession().createCriteria(TaskInstanceHistoryEntity.class) .setProjection(Projections.count("cod")).uniqueResult()).intValue(); }
From source file:org.rebioma.server.services.OccurrenceDbImpl.java
License:Apache License
@SuppressWarnings("unchecked") private List<Occurrence> find(OccurrenceQuery query, Set<OccurrenceFilter> filters, User user, int tryCount) throws Exception { log.debug("finding Occurrence instances by query."); try {//w ww . jav a 2s. c om Session session = ManagedSession.createNewSessionAndTransaction(); List<Occurrence> results = null; Criteria criteria = session.createCriteria(Occurrence.class); OccurrenceFilter userReviewFilter = null; OccurrenceFilter myreviewPublicFilter = null; ResultFilter resultFilter = query.getResultFilter(); for (OccurrenceFilter filter : filters) { if (filter.column.equals(filter.getPropertyName("userReviewed"))) { userReviewFilter = filter; if (resultFilter != null) { if (resultFilter == ResultFilter.PUBLIC) { myreviewPublicFilter = new OccurrenceFilter("public = true"); } else if (resultFilter == ResultFilter.PRIVATE) { myreviewPublicFilter = new OccurrenceFilter("public = false"); } resultFilter = null; } } } if (myreviewPublicFilter != null) { filters.add(myreviewPublicFilter); } filters.remove(userReviewFilter); OccurrenceFilter idsFilter = null; if (userReviewFilter != null) { Boolean reviewed = null; if (userReviewFilter.operator == Operator.EQUAL) { reviewed = (Boolean) userReviewFilter.getValue(); } List<Integer> occIds = recordReviewDb.getRecordReviewOccIds(user.getId(), reviewed); System.out.println(occIds.size()); if (occIds.isEmpty()) { occIds.add(0); } idsFilter = new OccurrenceFilter("id", Operator.IN, occIds); filters.add(idsFilter); } //filtre sur les identifiants d'occurrence if (query.getOccurrenceIdsFilter() != null && !query.getOccurrenceIdsFilter().isEmpty()) { OccurrenceFilter occIdsFilter = new OccurrenceFilter("id", Operator.IN, query.getOccurrenceIdsFilter()); filters.add(occIdsFilter); } log.info("find filters: " + addCreterionByFilters(criteria, user, filters, resultFilter, tryCount)); if (userReviewFilter != null) { filters.remove(idsFilter); filters.add(userReviewFilter); } if (myreviewPublicFilter != null) { filters.remove(myreviewPublicFilter); } List<OrderKey> orderingMap = query.getOrderingMap(); log.info("order map = " + orderingMap); if (query.isCountTotalResults()) { criteria.setFirstResult(0); criteria.setProjection(Projections.count("id")); Integer count = (Integer) criteria.uniqueResult(); if (count != null) { query.setCount(count); } } else { query.setCount(-1); } // Sets the start, limit, and order by accepted species: criteria.setFirstResult(query.getStart()); if (query.getLimit() != OccurrenceQuery.UNLIMITED) { criteria.setMaxResults(query.getLimit()); } criteria.setProjection(null); /*for (OrderKey orderKey : orderingMap) { String property = orderKey.getAttributeName(); String occAttribute = getOccurrencePropertyName(property); if (orderKey.isAsc()) { log.info("order by property " + occAttribute + " in ascending order"); criteria.addOrder(Order.asc(occAttribute)); } else { log.info("order by property " + occAttribute + " in descending order"); criteria.addOrder(Order.desc(occAttribute)); } }*/ criteria.addOrder(Order.asc("id")); results = criteria.list(); // filters.addAll(removedFilters); log.debug("find by example successful, result size: " + results.size()); ManagedSession.commitTransaction(session); return results; } catch (RuntimeException re) { log.error("find by example failed", re); re.printStackTrace(); throw re; } catch (Exception e) { log.error("unexpected error: ", e); e.printStackTrace(); throw e; } }
From source file:org.rebioma.server.services.OccurrenceDbImpl.java
License:Apache License
private List<Integer> findIds(OccurrenceQuery query, Set<OccurrenceFilter> filters, User user, int tryCount) throws Exception { log.debug("finding Occurrence instances by query."); try {// w w w . ja va2 s . c o m Session session = ManagedSession.createNewSessionAndTransaction(); List<Integer> results = null; Criteria criteria = session.createCriteria(Occurrence.class).setProjection(Projections.id()); OccurrenceFilter userReviewFilter = null; for (OccurrenceFilter filter : filters) { if (filter.column.equals(filter.getPropertyName("userReviewed"))) { userReviewFilter = filter; } } filters.remove(userReviewFilter); List<OrderKey> orderingMap = query.getOrderingMap(); for (OrderKey orderKey : orderingMap) { String property = orderKey.getAttributeName(); if (orderKey.isAsc()) { //criteria.addOrder(Order.asc(getOccurrencePropertyName(property))); } else { //criteria.addOrder(Order.desc(getOccurrencePropertyName(property))); } } // Sets the start, limit, and order by accepted species: criteria.setFirstResult(query.getStart()); if (query.getLimit() != OccurrenceQuery.UNLIMITED) { criteria.setMaxResults(query.getLimit()); } OccurrenceFilter idsFilter = null; if (userReviewFilter != null) { Boolean reviewed = null; if (userReviewFilter.operator == Operator.EQUAL) { reviewed = (Boolean) userReviewFilter.getValue(); } List<Integer> occIds = recordReviewDb.getRecordReviewOccIds(user.getId(), reviewed); System.out.println(occIds.size()); if (occIds.isEmpty()) { occIds.add(0); } idsFilter = new OccurrenceFilter("id", Operator.IN, occIds); filters.add(idsFilter); } log.info("find filters: " + addCreterionByFilters(criteria, user, filters, query.getResultFilter(), tryCount)); if (userReviewFilter != null) { filters.remove(idsFilter); filters.add(userReviewFilter); } results = criteria.list(); if (query.isCountTotalResults()) { criteria.setFirstResult(0); criteria.setProjection(Projections.count("id")); Integer count = (Integer) criteria.uniqueResult(); if (count != null) { query.setCount(count); } } else { query.setCount(-1); } // filters.addAll(removedFilters); log.debug("find by example successful, result size: " + results.size()); ManagedSession.commitTransaction(session); return results; } catch (RuntimeException re) { log.error("find by example failed", re); re.printStackTrace(); throw re; } catch (Exception e) { log.error("unexpected error: ", e); e.printStackTrace(); throw e; } }
From source file:org.rebioma.server.services.UserDbImpl.java
License:Apache License
public UserQuery findByQuery(UserQuery query, Integer loggedInUserId) throws Exception { log.debug("finding User instances by query."); Session session = ManagedSession.createNewSessionAndTransaction(); try {// w w w.j ava 2s . com Criteria criteria = session.createCriteria(User.class); List<OrderKey> orderingMap = query.getOrderingMap(); if (orderingMap == null) { criteria.addOrder(Order.asc(getUserPropertyName("firstName"))); } else { for (OrderKey orderKey : orderingMap) { String property = orderKey.getAttributeName(); if (orderKey.isAsc()) { criteria.addOrder(Order.asc(getUserPropertyName(property))); } else { criteria.addOrder(Order.desc(getUserPropertyName(property))); } } } criteria.setFirstResult(query.getStart()); criteria.setMaxResults(query.getLimit()); if (!query.isUsersCollaboratorsOnly()) { criteria.add(Restrictions.ne("id", loggedInUserId)); } Set<UserFilter> filters = QueryFilter.getFilters(query.getSearchFilters(), UserFilter.class); for (UserFilter filter : filters) { switch (filter.getOperator()) { case EQUAL: criteria.add(Restrictions.eq(filter.column, filter.value)); break; case CONTAIN: criteria.add(Restrictions.ilike(filter.column, filter.value.toString(), MatchMode.ANYWHERE)); break; case IN: criteria.add(Restrictions.in(filter.column, filter.getIntCollectionValues())); break; } } List<User> users = criteria.list(); query.setResults(users); if (query.isCountTotalResults()) { criteria.setFirstResult(0); criteria.setProjection(Projections.count("id")); Integer count = (Integer) criteria.uniqueResult(); if (count != null) { query.setCount(count); } } else { query.setCount(-1); } ManagedSession.commitTransaction(session); } catch (Exception e) { ManagedSession.rollbackTransaction(session); e.printStackTrace(); throw e; } return query; }
From source file:org.remus.marketplace.scheduling.GenerateStatisticsJob.java
License:Open Source License
private void createClickStatistics(Integer id, File folder, Node node, Calendar instance) { Map<Date, Integer> map = new HashMap<Date, Integer>(); for (int i = 0, n = month; i < n; i++) { Calendar instance2 = Calendar.getInstance(); instance2.setTime(new Date()); instance2.add(Calendar.MONTH, i * -1); map.put(instance2.getTime(), 0); }/*from www . j a v a2 s . c om*/ AdvancedCriteria criteria = new AdvancedCriteria() .addRestriction(Restrictions.between(Clickthrough.TIME, instance.getTime(), new Date())) .addRestriction(Restrictions.eq(Clickthrough.NODE, node)); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.count(Clickthrough.NODE)); projectionList .add(Projections.sqlGroupProjection("month({alias}.time) as month, year({alias}.time) as year", "month({alias}.time), year({alias}.time)", new String[] { "month", "year" }, new Type[] { Hibernate.INTEGER, Hibernate.INTEGER })); criteria.setProjection(projectionList); List<Object> query = clickthroughDao.query(criteria); for (Object object : query) { Object[] data = (Object[]) object; Integer count = (Integer) data[0]; Integer month = (Integer) data[1]; Integer year = (Integer) data[2]; Set<Date> keySet = map.keySet(); for (Date date : keySet) { Calendar instance2 = Calendar.getInstance(); instance2.setTime(date); if (instance2.get(Calendar.YEAR) == year && instance2.get(Calendar.MONTH) == month - 1) { map.put(date, count); } } } DefaultCategoryDataset data = new DefaultCategoryDataset(); List<Date> keySet = new ArrayList<Date>(map.keySet()); Collections.sort(keySet, new Comparator<Date>() { @Override public int compare(Date o1, Date o2) { return o1.compareTo(o2); } }); for (Date date : keySet) { Integer integer = map.get(date); Calendar instance2 = Calendar.getInstance(); instance2.setTime(date); int year = instance2.get(Calendar.YEAR); int month = instance2.get(Calendar.MONTH) + 1; data.addValue(integer, "Column1", month + "-" + year); } JFreeChart createBarChart = ChartFactory.createBarChart("Clicks", "Month", "", data, PlotOrientation.VERTICAL, false, false, false); File file = new File(folder, "clicks_" + id + ".png"); if (file.exists()) { file.delete(); } try { ChartUtilities.saveChartAsPNG(file, createBarChart, 500, 300); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:org.remus.marketplace.scheduling.GenerateStatisticsJob.java
License:Open Source License
private void createDownloadStatistics(Integer id, File folder, Node node, Calendar instance) { Map<Date, Integer> map = new HashMap<Date, Integer>(); for (int i = 0, n = month; i < n; i++) { Calendar instance2 = Calendar.getInstance(); instance2.setTime(new Date()); instance2.add(Calendar.MONTH, i * -1); map.put(instance2.getTime(), 0); }/*from w w w. j a v a 2 s.c om*/ AdvancedCriteria criteria = new AdvancedCriteria() .addRestriction(Restrictions.between(Download.TIME, instance.getTime(), new Date())) .addRestriction(Restrictions.eq(Download.NODE, node)); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.count(Download.NODE)); projectionList .add(Projections.sqlGroupProjection("month({alias}.time) as month, year({alias}.time) as year", "month({alias}.time), year({alias}.time)", new String[] { "month", "year" }, new Type[] { Hibernate.INTEGER, Hibernate.INTEGER })); criteria.setProjection(projectionList); List<Object> query = downloadDao.query(criteria); for (Object object : query) { Object[] data = (Object[]) object; Integer count = (Integer) data[0]; Integer month = (Integer) data[1]; Integer year = (Integer) data[2]; Set<Date> keySet = map.keySet(); for (Date date : keySet) { Calendar instance2 = Calendar.getInstance(); instance2.setTime(date); if (instance2.get(Calendar.YEAR) == year && instance2.get(Calendar.MONTH) == month - 1) { map.put(date, count); } } } DefaultCategoryDataset data = new DefaultCategoryDataset(); List<Date> keySet = new ArrayList<Date>(map.keySet()); Collections.sort(keySet, new Comparator<Date>() { @Override public int compare(Date o1, Date o2) { return o1.compareTo(o2); } }); for (Date date : keySet) { Integer integer = map.get(date); Calendar instance2 = Calendar.getInstance(); instance2.setTime(date); int year = instance2.get(Calendar.YEAR); int month = instance2.get(Calendar.MONTH) + 1; data.addValue(integer, "Column1", month + "-" + year); } JFreeChart createBarChart = ChartFactory.createBarChart("Downloads", "Month", "", data, PlotOrientation.VERTICAL, false, false, false); File file = new File(folder, "download_" + id + ".png"); if (file.exists()) { file.delete(); } try { ChartUtilities.saveChartAsPNG(file, createBarChart, 500, 300); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:org.sakaiproject.scorm.dao.hibernate.AttemptDaoImpl.java
License:Educational Community License
public int count(final long contentPackageId, final String learnerId) { HibernateCallback hcb = new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(Attempt.class) .add(Restrictions.eq("contentPackageId", contentPackageId)) .add(Restrictions.eq("learnerId", learnerId)).setProjection(Projections.count("id")); return criteria.uniqueResult(); }//from w ww . j a v a 2 s. c o m }; Object result = getHibernateTemplate().execute(hcb); int r = 0; if (result != null) { if (result instanceof Number) { r = ((Number) result).intValue(); } } return r; }
From source file:org.sculptor.framework.accessimpl.jpahibernate.JpaHibFindByConditionAccessImpl.java
License:Apache License
public void executeCount() { final Criteria criteria = createCriteria(); prepareCache(criteria);/*from w w w .j av a 2s. c o m*/ // Prepare where clause addSubCriterias(criteria); addConditionalCriteria(criteria); addResultTransformer(criteria); if (realDistinctRoot) { criteria.setProjection(Projections.countDistinct(Criteria.ROOT_ALIAS + ".id")); } else { criteria.setProjection(Projections.count(Criteria.ROOT_ALIAS + ".id")); } rowCount = (Long) criteria.uniqueResult(); }
From source file:org.sculptor.framework.accessimpl.jpahibernate.JpaHibFindByConditionStatAccessImpl.java
License:Apache License
private void addStatProjection(Criteria criteria) throws PersistenceException { ProjectionList projList = Projections.projectionList(); projList.add(Projections.rowCount()); for (ColumnStatRequest<T> column : statRequest) { if (column.isFlag(COUNT)) { projList.add(Projections.count(column.getColumn().getName())); }//from ww w. jav a2 s . c om if (column.isFlag(MIN)) { projList.add(Projections.min(column.getColumn().getName())); } if (column.isFlag(MAX)) { projList.add(Projections.max(column.getColumn().getName())); } if (column.isFlag(AVERAGE)) { projList.add(Projections.avg(column.getColumn().getName())); } if (column.isFlag(SUM)) { projList.add(Projections.sum(column.getColumn().getName())); } if (column.isFlag(GROUP_BY_VAL)) { projList.add(Projections.groupProperty(column.getColumn().getName())); } // Time groups for (ColumnStatType flag : TIME_GROUPS) { if (column.isFlag(flag)) { projList.add(makeTimeGroupBy(column, flag, criteria)); } } } criteria.setProjection(projList); }
From source file:org.xchain.namespaces.hibernate.test.TestCriteriaEntityPermission.java
License:Apache License
@Test public void testGetCriteria() throws Exception { Session session = HibernateLifecycle.getCurrentSession(); IdentityManager.instance().loggedIn(new UsernamePrincipal(userList.get(0).getUsername())); Transaction t = session.beginTransaction(); Criteria notesCriteria = session.createCriteria(UserNote.class); notesCriteria.setProjection(Projections.projectionList().add(Projections.count("text"))); CriteriaEntityPermission p = new CriteriaEntityPermission(EntityOperation.LOAD, UserNote.class, notesCriteria, null, null, null, null); assertEquals(p.getCriteria(), notesCriteria); t.rollback();// w w w. j a va 2 s. c om }