List of usage examples for org.hibernate.criterion Projections distinct
public static Projection distinct(Projection projection)
From source file:ubc.pavlab.aspiredb.server.dao.PhenotypeDaoImpl.java
License:Apache License
@Override @Transactional(readOnly = true)//from w w w. j a va 2 s . c o m public List<String> getListOfPossibleValuesByName(Collection<Long> projectIds, String name) { Session session = currentSession(); Criteria criteria = session.createCriteria(Phenotype.class); criteria.add(Restrictions.eq("name", name)); criteria.setProjection(Projections.distinct(Projections.property("value"))); criteria.createAlias("subject", "subject").createAlias("subject.project", "project") .add(Restrictions.in("project.id", projectIds)); return criteria.list(); }
From source file:ubc.pavlab.aspiredb.server.dao.PhenotypeDaoImpl.java
License:Apache License
@Override @Transactional(readOnly = true)//from w w w. j av a 2 s . c o m public List<String> getListOfPossibleValuesByUri(Collection<Long> projectIds, String uri) { Session session = currentSession(); Criteria criteria = session.createCriteria(Phenotype.class).createAlias("subject", "subject"); criteria.add(Restrictions.eq("uri", uri)); criteria.createCriteria("subject.project").add(Restrictions.in("id", projectIds)); criteria.setProjection(Projections.distinct(Projections.property("value"))); return criteria.list(); }
From source file:ubc.pavlab.aspiredb.server.dao.PhenotypeDaoImpl.java
License:Apache License
@Override @Transactional(readOnly = true)/*from w w w .ja va2 s . c om*/ public Collection<Phenotype> loadAllByProjectIds(Collection<Long> projectIds) { Session session = currentSession(); Criteria criteria = session.createCriteria(Phenotype.class).createAlias("subject", "subject"); criteria.createCriteria("subject.project").add(Restrictions.in("id", projectIds)); criteria.setProjection(Projections.distinct(Projections.id())); List<Long> ids = criteria.list(); return this.load(ids); }
From source file:ubc.pavlab.aspiredb.server.dao.SubjectDaoImpl.java
License:Apache License
@Override public Collection<String> suggestValuesForEntityProperty(Property property, SuggestionContext suggestionContext) { Session session = currentSession();//w w w . j a va 2 s. c om Criteria criteria = session.createCriteria(Subject.class); if (suggestionContext.getValuePrefix() != null) { String valuePrefix = suggestionContext.getValuePrefix(); String valueWildcard = valuePrefix.replaceAll("_", "\\_") + "%"; criteria.add(Restrictions.like(property.getName(), valueWildcard)); } criteria.setProjection(Projections.distinct(Projections.property(property.getName()))) .createAlias("project", "project") .add(Restrictions.in("project.id", suggestionContext.getActiveProjectIds())); return criteria.list(); }
From source file:ubc.pavlab.aspiredb.server.dao.SubjectDaoImpl.java
License:Apache License
private List<Long> findIds(AspireDbFilterConfig filter) throws BioMartServiceException, NeurocartaServiceException { if (filter instanceof ProjectOverlapFilterConfig) { List<Long> variantIds = variantDao.getProjectOverlapVariantIds((ProjectOverlapFilterConfig) filter); Collection<Subject> subjects = this.loadByVariantIds(variantIds); ArrayList<Long> subjectIds = new ArrayList<Long>(); for (Subject s : subjects) { subjectIds.add(s.getId());/* w ww . ja v a 2 s . c o m*/ } return subjectIds; } else if (filter instanceof PhenotypeFilterConfig) { Collection<Subject> subjects = findByPhenotype((PhenotypeFilterConfig) filter); ArrayList<Long> subjectIds = new ArrayList<Long>(); for (Subject s : subjects) { subjectIds.add(s.getId()); } return subjectIds; } Session session = this.getSessionFactory().getCurrentSession(); Criteria criteria = session.createCriteria(Subject.class); addSingleFilter(filter, criteria); criteria.setProjection(Projections.distinct(Projections.id())); return criteria.list(); }
From source file:ubc.pavlab.aspiredb.server.dao.VariantDaoBaseImpl.java
License:Apache License
@Override public Collection<String> suggestValuesForEntityProperty(@SuppressWarnings("rawtypes") Property property, SuggestionContext suggestionContext) { Session session = currentSession();//from w w w.jav a2s . c o m Criteria criteria = session.createCriteria(this.elementClass); if (suggestionContext.getValuePrefix() != null) { // TODO: escape certain chars String valuePrefix = suggestionContext.getValuePrefix(); String valueWildcard = "%" + valuePrefix + "%"; criteria.add(Restrictions.like(property.getName(), valueWildcard)); } criteria.setProjection(Projections.distinct(Projections.property(property.getName()))); if (suggestionContext.getActiveProjectIds() != null && !suggestionContext.getActiveProjectIds().isEmpty()) { criteria.createAlias("subject", "subject").createAlias("subject.project", "project") .add(Restrictions.in("project.id", suggestionContext.getActiveProjectIds())); } return criteria.list(); }
From source file:ubc.pavlab.aspiredb.server.dao.VariantDaoBaseImpl.java
License:Apache License
private List<Long> findIds(AspireDbFilterConfig filter) { // for performance reasons as Criteria can be slow if (filter instanceof ProjectFilterConfig) { return this.getVariantIdsByProject((ProjectFilterConfig) filter); // Project overlap filter requires a little more data processing than the other filters and uses // precalculated database table as it doesn't quite fit the same paradigm as the other filters I am breaking // it off into its own method } else if (filter instanceof ProjectOverlapFilterConfig) { return this.getProjectOverlapVariantIds((ProjectOverlapFilterConfig) filter); } else if (filter instanceof PhenotypeFilterConfig) { List<Variant> variants = findByPhenotype((PhenotypeFilterConfig) filter); ArrayList<Long> variantIds = new ArrayList<Long>(); for (Variant v : variants) { variantIds.add(v.getId());/*from www. j a v a 2 s . co m*/ } return variantIds; } Session session = this.getSessionFactory().getCurrentSession(); Criteria criteria = session.createCriteria(this.elementClass); addSingleFilter(filter, criteria); criteria.setProjection(Projections.distinct(Projections.id())); return criteria.list(); }
From source file:uk.ac.bbsrc.tgac.miso.persistence.impl.HibernateExperimentDao.java
License:Open Source License
@Override public Collection<Experiment> listByRun(long runId) throws IOException { Criteria idCriteria = currentSession().createCriteria(Experiment.class); idCriteria.createCriteria("runPartitions").createAlias("run", "run").add(Restrictions.eq("run.id", runId)); idCriteria.setProjection(Projections.distinct(Projections.property("id"))); @SuppressWarnings("unchecked") List<Long> ids = idCriteria.list(); if (ids.isEmpty()) { return Collections.emptyList(); }/* w w w . ja v a 2 s . com*/ Criteria criteria = currentSession().createCriteria(Experiment.class); criteria.add(Restrictions.in("id", ids)); @SuppressWarnings("unchecked") List<Experiment> results = criteria.list(); return results; }
From source file:uk.ac.bbsrc.tgac.miso.persistence.impl.HibernatePlatformDao.java
License:Open Source License
@Override public List<PlatformType> listDistinctPlatformNames() throws IOException { Criteria criteria = currentSession().createCriteria(Platform.class); criteria.setProjection(Projections.distinct(Projections.property("platformType"))); @SuppressWarnings("unchecked") List<PlatformType> records = criteria.list(); return records; }
From source file:uk.nhs.cfh.dsp.srth.expression.repository.impl.ExpressionMappingObjectDAOImpl.java
License:Apache License
/** * This method returns all distinct contained {@link uk.nhs.cfh.dsp.srth.expression.repository.om.ExpressionMappingObject}s, * in the repository, but only returns their UUIDs and compositional grammar form of their NFE. * * @return the list/*from w ww . j ava 2s. c o m*/ */ public List<ExpressionMappingObject> returnAllDistinctLiteObjects() { List list = this.hibernateTemplate.executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(ExpressionMappingObjectImpl.class); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.distinct(Projections.property(NFE_UUID))); projectionList.add(Projections.property(NFE_CGF)); criteria.setProjection(projectionList); return criteria.list(); } }); return returnLiteObjects(list); }