Example usage for org.hibernate.criterion Projections distinct

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

Introduction

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

Prototype

public static Projection distinct(Projection projection) 

Source Link

Document

Create a distinct projection from a projection.

Usage

From source file:gov.nih.nci.cananolab.service.sample.helper.SampleServiceHelper.java

License:BSD License

public List<String> findSampleIdsByOwner(String currentOwner) throws Exception {
    List<String> sampleIds = new ArrayList<String>();

    // can't query for the entire Sample object due to
    // limitations in pagination in SDK
    // Sample sample = new Sample();
    ProjectionList projectionList = Projections.projectionList();
    projectionList.add(Projections.property("id"));
    DetachedCriteria crit = DetachedCriteria.forClass(Sample.class);
    crit.setProjection(Projections.distinct(projectionList));
    Criterion crit1 = Restrictions.eq("createdBy", currentOwner);
    // in case of copy createdBy is like lijowskim:COPY
    Criterion crit2 = Restrictions.like("createdBy", currentOwner + ":", MatchMode.START);
    crit.add(Expression.or(crit1, crit2));
    CaNanoLabApplicationService appService = (CaNanoLabApplicationService) ApplicationServiceProvider
            .getApplicationService();/*from w w w.j a va  2 s .co  m*/

    List results = appService.query(crit);
    for (int i = 0; i < results.size(); i++) {
        String id = results.get(i).toString();
        if (springSecurityAclService.currentUserHasReadPermission(Long.valueOf(id),
                SecureClassesEnum.SAMPLE.getClazz())
                || springSecurityAclService.currentUserHasWritePermission(Long.valueOf(id),
                        SecureClassesEnum.SAMPLE.getClazz())) {
            sampleIds.add(id);
        } else {
            logger.debug("User doesn't have access to sample of ID: " + id);
        }
    }
    return sampleIds;
}

From source file:gov.nih.nci.eagle.util.UILookupLoader.java

License:BSD License

private void init() {
    valueMap = new HashMap<String, List<String>>();
    hibernateTemplate.execute(new HibernateCallback() {
        public Object doInHibernate(Session sess) throws HibernateException, SQLException {

            Criteria criteria = sess.createCriteria(Lifestyle.class);
            criteria.setProjection(Projections.distinct(Projections.property(RESIDENTIAL_AREA)));
            List list = criteria.list();
            list.remove(null);/*from   www  .j  a v  a 2s .  com*/
            valueMap.put(RESIDENTIAL_AREA, list);
            return null;
        }
    });
}

From source file:grails.orm.HibernateCriteriaBuilder.java

License:Apache License

/**
 * A projection that selects a distince property name
 * @param propertyName The property name
 * @param alias The alias to use/*from   w ww  .jav  a 2 s.co m*/
 */
public org.grails.datastore.mapping.query.api.Projections distinct(String propertyName, String alias) {
    final Projection proj = Projections.distinct(Projections.property(calculatePropertyName(propertyName)));
    addProjectionToList(proj, alias);
    return this;
}

From source file:grails.orm.HibernateCriteriaBuilder.java

License:Apache License

/**
 * A distinct projection that takes a list
 *
 * @param propertyNames The list of distince property names
 * @param alias The alias to use// w w  w.  j a  v  a 2  s.  co  m
 */
@SuppressWarnings("rawtypes")
public org.grails.datastore.mapping.query.api.Projections distinct(Collection propertyNames, String alias) {
    ProjectionList list = Projections.projectionList();
    for (Object o : propertyNames) {
        list.add(Projections.property(calculatePropertyName(o.toString())));
    }
    final Projection proj = Projections.distinct(list);
    addProjectionToList(proj, alias);
    return this;
}

From source file:it.av.es.service.impl.CittaServiceHibernate.java

License:Apache License

@Override
public List<String> findCapByComune(String comune, int maxResults) {
    Order orderByName = Order.asc("cap");
    Criteria criteria = getHibernateSession().createCriteria(Citta.class);
    criteria.setProjection(Projections.distinct(Projections.property("cap")));
    if (StringUtils.isNotBlank(comune)) {
        Criterion critByName = Restrictions.ilike("comune", comune);
        criteria.add(critByName);/* w  w w .j a  v  a 2 s .  co m*/
    }
    criteria.addOrder(orderByName);
    if (maxResults > 0) {
        criteria.setMaxResults(maxResults);
    }
    return criteria.list();
}

From source file:it.av.es.service.impl.CittaServiceHibernate.java

License:Apache License

@Override
public List<String> findCap(String pattern, int maxResults) {
    Order orderByName = Order.asc("cap");
    Criteria criteria = getHibernateSession().createCriteria(Citta.class);
    criteria.setProjection(Projections.distinct(Projections.property("cap")));
    if (StringUtils.isNotBlank(pattern)) {
        Criterion critByName = Restrictions.ilike("cap", pattern, MatchMode.ANYWHERE);
        criteria.add(critByName);/*from   w w w . j a va 2  s. c  om*/
    }
    criteria.addOrder(orderByName);
    if (maxResults > 0) {
        criteria.setMaxResults(maxResults);
    }
    return criteria.list();
}

From source file:it.av.es.service.impl.CittaServiceHibernate.java

License:Apache License

@Override
public List<String> findProvinciaByComune(String comune, int maxResults) {
    Criterion critByName = Restrictions.ilike("comune", comune);
    Order orderByName = Order.asc("provincia");
    Criteria criteria = getHibernateSession().createCriteria(Citta.class);
    criteria.setProjection(Projections.distinct(Projections.property("provincia")));
    criteria.add(critByName);/* w  w  w.j av  a2 s. c  om*/
    criteria.addOrder(orderByName);
    if (maxResults > 0) {
        criteria.setMaxResults(maxResults);
    }
    return criteria.list();
}

From source file:it.av.youeat.service.impl.RistoranteServiceHibernate.java

License:Apache License

/**
 * {@inheritDoc}//www.j  a v  a 2s.c  om
 */
@Override
public List<City> getCityWithRistoByCountry(Country country, int firstResult, int maxResults) {
    Criteria criteria = getHibernateSession().createCriteria(getPersistentClass());
    if (country != null) {
        criteria.add(Restrictions.eq(Ristorante.COUNTRY, country));
    }
    criteria.setFirstResult(firstResult);
    criteria.setMaxResults(maxResults);
    criteria.setProjection(Projections.distinct(Projections.property(Ristorante.CITY)));
    List<City> cities = (List<City>) criteria.list();
    Collections.sort(cities);
    return cities;
}

From source file:it.av.youeat.service.impl.RistoranteServiceHibernate.java

License:Apache License

/**
 * {@inheritDoc}/*w  w w .jav  a 2  s . c  o m*/
 */
@Override
public List<Country> getCountryWithRisto() {
    Criteria criteria = getHibernateSession().createCriteria(getPersistentClass());
    criteria.setProjection(Projections.distinct(Projections.property(Ristorante.COUNTRY)));
    List<Country> countries = (List<Country>) criteria.list();
    Collections.sort(countries);
    return countries;
}

From source file:it.unitn.elisco.dao.AnswerDAO.java

List<Question> getDistinctApprovedQuestionsFromAnswers(Context context) {
    Session s = HibernateUtil.getSession();
    Transaction tx = s.beginTransaction();

    List<Question> res = s.createCriteria(Answer.class).add(Restrictions.eq("context", context))
            .setProjection(Projections.distinct(Projections.property("question"))).list();

    tx.commit();//  www.java2  s  . c  o  m
    s.close();

    return res;
}