List of usage examples for org.hibernate.criterion Projections distinct
public static Projection distinct(Projection projection)
From source file:net.longfalcon.newsj.persistence.hibernate.ReleaseDAOImpl.java
License:Open Source License
@Override @Transactional(readOnly = true, propagation = Propagation.SUPPORTS) public List<Long> findReleaseGroupIds() { Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Release.class); criteria.setProjection(Projections.distinct(Projections.property("groupId"))); return criteria.list(); }
From source file:net.longfalcon.newsj.persistence.hibernate.ReleaseDAOImpl.java
License:Open Source License
@Override @Transactional(readOnly = true, propagation = Propagation.SUPPORTS) public List<Long> getDistinctImdbIds(List<Integer> searchCategories, int maxAgeDays, List<Integer> userExCatIds) { Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Release.class); if (searchCategories != null && !searchCategories.isEmpty()) { criteria.add(Restrictions.in("category.id", searchCategories)); }//w ww .ja v a 2 s.co m if (maxAgeDays > 0) { Date maxAge = new DateTime().minusDays(maxAgeDays).toDate(); criteria.add(Restrictions.gt("postDate", maxAge)); } if (!userExCatIds.isEmpty()) { criteria.add(Restrictions.not(Restrictions.in("category.id", userExCatIds))); } criteria.setProjection(Projections.distinct(Projections.property("imdbId"))); return criteria.list(); }
From source file:org.ambraproject.search.SavedSearchRetrieverImpl.java
License:Apache License
/** * @inheritDoc/*from ww w . j a v a 2 s. co m*/ */ @Override @SuppressWarnings("unchecked") public List<SavedSearchJob> retrieveSearchAlerts(AlertType alertType, Date startTime, Date endTime) { List<SavedSearchJob> searchJobs = new ArrayList<SavedSearchJob>(); List<Object[]> paramsList = (List<Object[]>) hibernateTemplate.findByCriteria(DetachedCriteria .forClass(SavedSearch.class).createAlias("searchQuery", "s").add(alertType.getTypeCriterion()) .setFetchMode("searchQuery", FetchMode.JOIN) .setProjection(Projections.distinct(Projections.projectionList().add(Projections.property("s.ID")) .add(Projections.property("s.hash")).add(Projections.property("searchType")) .add(Projections.property("s.searchParams"))))); for (Object[] obj : paramsList) { searchJobs.add(SavedSearchJob.builder().setSavedSearchQueryID((Long) obj[0]).setHash((String) obj[1]) .setType((SavedSearchType) obj[2]).setSearchString((String) obj[3]) .setFrequency(alertType.name()).setStartDate(startTime).setEndDate(endTime).build()); } log.debug("Returning {} saved search(es) for type {}", searchJobs.size(), alertType); return searchJobs; }
From source file:org.ambraproject.search.SavedSearchSenderImpl.java
License:Apache License
@SuppressWarnings("unchecked") protected List<Object[]> getSavedSearchDetails(Long savedSearchQueryID, String type) { SavedSearchRetriever.AlertType alertType = SavedSearchRetriever.AlertType.valueOf(type); DetachedCriteria criteria = DetachedCriteria.forClass(UserProfile.class) .setProjection(Projections.distinct(Projections.projectionList().add(Projections.property("ss.ID")) .add(Projections.property("email")).add(Projections.property("ss.searchName")))) .createAlias("savedSearches", "ss").createAlias("ss.searchQuery", "q") .add(Restrictions.eq("q.ID", savedSearchQueryID)); if (alertType == SavedSearchRetriever.AlertType.WEEKLY) { criteria.add(Restrictions.eq("ss.weekly", true)); }// w w w . jav a 2s .c o m if (alertType == SavedSearchRetriever.AlertType.MONTHLY) { criteria.add(Restrictions.eq("ss.monthly", true)); } return (List<Object[]>) hibernateTemplate.findByCriteria(criteria); }
From source file:org.apache.usergrid.apm.service.NetworkMetricsDBServiceImpl.java
License:Apache License
@SuppressWarnings("unchecked") public List<String> getUniqueUrls(List<Criterion> criteria) throws HibernateException { log.info("Getting unique urls for " + criteria.toString()); List<String> uniqueUrls = null; Session session = null;//from w w w. j a v a 2 s . co m Transaction transaction = null; try { session = ServiceFactory.getAnalyticsHibernateSession(); transaction = session.beginTransaction(); Criteria crit = session.createCriteria(ClientNetworkMetrics.class); if (criteria != null) { Iterator<Criterion> it = criteria.iterator(); while (it.hasNext()) { crit.add(it.next()); } } crit.setProjection(Projections.distinct(Projections.property("regexUrl"))); uniqueUrls = (List<String>) crit.list(); transaction.commit(); } catch (Exception e) { e.printStackTrace(); transaction.rollback(); throw new HibernateException("Cannot get unique urls ", e); } return uniqueUrls; }
From source file:org.apache.usergrid.apm.service.SessionDBServiceImpl.java
License:Apache License
@SuppressWarnings("unchecked") public List<String> getDistinctValuesFromSummarySessionMetrics(String column, Date since) throws HibernateException { //String query = "SELECT DISTINCT " + column + "FROM SUMMARY_SESSION_METRICS where " + log.info("Getting distinct values for " + column + " since " + since); List<String> results = null; Session session = null;//from w ww . j a v a 2 s.c o m Transaction transaction = null; try { session = ServiceFactory.getAnalyticsHibernateSession(); transaction = session.beginTransaction(); Criteria crit = session.createCriteria(SummarySessionMetrics.class); crit.add(Restrictions.gt("sessionEndTime", since)); crit.setProjection(Projections.distinct(Projections.property(column))); results = (List<String>) crit.list(); transaction.commit(); } catch (Exception e) { e.printStackTrace(); transaction.rollback(); throw new HibernateException("Cannot get distict values from SummarySessionMetrics ", e); } return results; }
From source file:org.archiviststoolkit.plugin.dbdialog.RemoteDBConnectDialogLight.java
/** * Method to add more extent types to the AT lookup list in case the user made additions * to the backend/*from w ww . j a va 2 s . c o m*/ * * @param lookupList * @return */ public void addExtentTypes(LookupList lookupList) { Transaction tx = null; ArrayList recordList = null; try { tx = session.beginTransaction(); Criteria criteria = session.createCriteria(ArchDescriptionPhysicalDescriptions.class); criteria.setProjection(Projections.distinct(Projections.property("extentType"))); recordList = (ArrayList) criteria.list(); tx.commit(); } catch (RuntimeException ex) { ex.printStackTrace(); } for (Object record : recordList) { String extentType = (String) record; if (!extentType.isEmpty()) { lookupList.addListItem(extentType); } } }
From source file:org.archiviststoolkit.plugin.dbdialog.RemoteDBConnectDialogLight.java
/** * Method to add salutations to a dummy lookup list in order to add them to the ASpace * enum for this/*from www. j a va 2 s . c om*/ * * @param lookupList */ public void addSalutations(LookupList lookupList) { Transaction tx = null; ArrayList recordList = null; try { tx = session.beginTransaction(); Criteria criteria = session.createCriteria(Names.class); criteria.setProjection(Projections.distinct(Projections.property("salutation"))); recordList = (ArrayList) criteria.list(); tx.commit(); } catch (RuntimeException ex) { ex.printStackTrace(); } for (Object record : recordList) { String salutation = (String) record; if (!salutation.isEmpty()) { lookupList.addListItem(salutation); } } }
From source file:org.bpmscript.audit.hibernate.HibernateAuditService.java
License:Apache License
/** * @see org.bpmscript.audit.hibernate.IAuditMessageService#findMessages(org.bpmscript.paging.IQuery) *///from w ww . j a v a 2 s .co m @SuppressWarnings("unchecked") public List<String> findDestinations() { return (List<String>) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(HibernateAuditMessage.class); criteria.setProjection(Projections .distinct(Projections.projectionList().add(Projections.property("destination")))); List list = criteria.list(); return list; } }); }
From source file:org.bpmscript.correlation.hibernate.HibernateCorrelationService.java
License:Apache License
/** * @param session//from w w w . j a va2 s .c o m * @return */ @SuppressWarnings("unchecked") protected List<String> getDistinctExpressions(String channelName, Session session) { Criteria criteria = session.createCriteria(HibernateCorrelation.class); criteria.setProjection(Projections.distinct(Projections.property("expressions"))); criteria.add(Expression.eq("channel", channelName)); criteria.add(Expression.gt("timeout", System.currentTimeMillis())); List<String> result = criteria.list(); return result; }