Example usage for org.hibernate.criterion DetachedCriteria setProjection

List of usage examples for org.hibernate.criterion DetachedCriteria setProjection

Introduction

In this page you can find the example usage for org.hibernate.criterion DetachedCriteria setProjection.

Prototype

public DetachedCriteria setProjection(Projection projection) 

Source Link

Document

Set the projection to use.

Usage

From source file:com.cimmyt.model.dao.impl.LabStudyDAOImpl.java

License:Apache License

@Override
public Integer getTotalRowsCustomQuery(final List<DsSearchParam> params) {
    final List<DsSearchParam> paramsTmp = new ArrayList<DsSearchParam>(params); //avoid changing original List

    final List<Integer> studyIdList = getListWithSampleFilters(paramsTmp);

    Integer resultList = 0;/*w w  w. j a v a 2 s. com*/
    resultList = this.getHibernateTemplate().execute(new HibernateCallback<Integer>() {
        @Override
        public Integer doInHibernate(Session session) throws HibernateException, SQLException {
            DetachedCriteria criteria = DetachedCriteria.forClass(LabStudy.class, VALUE_STUDY);
            addCriteria(criteria, paramsTmp, false);
            addCurrentSampleFilters(criteria, studyIdList);
            criteria.setProjection(Projections.rowCount());
            return (Integer) getHibernateTemplate().findByCriteria(criteria).get(0);
        }
    });
    return resultList;
}

From source file:com.cimmyt.model.dao.impl.LabStudyDAOImpl.java

License:Apache License

private List<Integer> getListWithSampleFilters(final List<DsSearchParam> params) {

    final List<Integer> studyIdList = this.getHibernateTemplate()
            .execute(new HibernateCallback<List<Integer>>() {
                @SuppressWarnings("unchecked")
                public List<Integer> doInHibernate(Session session) throws HibernateException, SQLException {
                    List<DsSearchParam> sampleParams = new ArrayList<DsSearchParam>();
                    for (DsSearchParam p : params) {
                        if (p.getElement().equals(VALUE_SAMPLE)) {
                            sampleParams.add(p);
                        }// ww  w  . ja va  2 s  .com
                    }
                    params.removeAll(sampleParams);

                    DetachedCriteria criteria = DetachedCriteria.forClass(LabStudy.class, VALUE_STUDY);
                    addCriteria(criteria, sampleParams, true);
                    criteria.setProjection(Projections.distinct(Projections.property("labstudyid")));
                    return (List<Integer>) (sampleParams.size() > 0
                            ? getHibernateTemplate().findByCriteria(criteria)
                            : null);
                }
            });
    return studyIdList;
}

From source file:com.cimmyt.model.dao.impl.SampleDetailDAOImpl.java

License:Apache License

public Integer getSamplesByStudyUsedInStorageLocationTotal(Integer labStudyId, List<Integer> excludedSamples) {
    Integer numberSamples = null;
    DetachedCriteria criteria = DetachedCriteria.forClass(SampleDetail.class);
    criteria.add(Restrictions.eq("labstudyid.labstudyid", labStudyId));
    criteria.add(Restrictions.eq("selforsend", ShipmentStatus.NO_SELECTED.getId()));
    if (excludedSamples.size() > 0) {
        criteria.add(Restrictions.not(Restrictions.in("studysampleid", excludedSamples)));
    }//from   ww w. j  a  va2  s .  c  o  m
    criteria.setProjection(Projections.rowCount());
    numberSamples = (Integer) getHibernateTemplate().findByCriteria(criteria).get(0);
    return numberSamples;
}

From source file:com.cimmyt.model.dao.impl.SampleDetailDAOImpl.java

License:Apache License

@Override
public Integer getTotalRowsCustomQuery(final List<DsSearchParam> params) {
    final List<DsSearchParam> paramsTmp = new ArrayList<DsSearchParam>(params); //avoid changing original List

    Integer resultList = 0;// w  w  w  .  j a v a  2 s .  c o m
    resultList = (Integer) this.getHibernateTemplate().execute(new HibernateCallback<Integer>() {
        @Override
        public Integer doInHibernate(Session session) throws HibernateException, SQLException {
            DetachedCriteria criteria = DetachedCriteria.forClass(SampleDetail.class, VALUE_SAMPLE);
            addCriteria(criteria, paramsTmp);
            criteria.setProjection(Projections.rowCount());
            return (Integer) getHibernateTemplate().findByCriteria(criteria).get(0);
        }
    });
    return resultList;
}

From source file:com.ephesoft.dcma.core.dao.hibernate.HibernateDao.java

License:Open Source License

/**
 * To count no. of rows satisfying criteria.
 * @param criteria DetachedCriteria// w w  w.j a  v a2 s .  c om
 */
public int count(DetachedCriteria criteria) {
    criteria.setProjection(Projections.rowCount());
    return (Integer) find(criteria).get(0);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java

License:Open Source License

/**
 * This API will fetch all the unc folder paths.
 * //from  w  ww .j a  v  a 2 s . co m
 * @return List<String>
 */
@Override
public List<String> getAllUNCFolderPaths() {
    DetachedCriteria criteria = criteria();
    criteria.setProjection(Projections.property(UNC_FOLDER));
    return find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java

License:Open Source License

/**
 * API to get the list of Batch Classes specifying startindex, no of results and sorting if any.
 * /*from www.ja v a  2 s . c  om*/
 * @param firstResult int
 * @param maxResults int 
 * @param order List<Order>
 * @param userRoles Set<String>
 * @return List of batch class.
 */
@Override
public List<BatchClass> getBatchClassList(final int firstResult, final int maxResults, final List<Order> order,
        final Set<String> userRoles) {
    EphesoftCriteria criteria = criteria();
    List<BatchClass> batchClassList = null;
    if (userRoles == null) {
        batchClassList = new ArrayList<BatchClass>(0);
    } else {
        List<String> roleList = new ArrayList<String>();
        for (String userRole : userRoles) {
            if (null == userRole || userRole.isEmpty()) {
                continue;
            }
            roleList.add(userRole);
        }
        DetachedCriteria detachedCriteria = criteria();
        detachedCriteria.createAlias(ASSIGNED_GROUPS, ASSIGNED_GROUPS);
        detachedCriteria.add(Restrictions.in(ASSIGNED_GROUPS_NAME, roleList));
        detachedCriteria.setProjection(Projections.distinct(Projections.property(BATCH_ID)));
        criteria.add(Subqueries.propertyIn(BATCH_ID, detachedCriteria));
        criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false)));
        batchClassList = find(criteria, firstResult, maxResults, order.toArray(new Order[order.size()]));
    }
    return batchClassList;
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java

License:Open Source License

/**
 * API to fetch the UNC folders for a batch class by name.
 * /* w ww.ja v  a2s .  c  o m*/
 * @param batchClassName {@link String}
 * @return List<String>
 */
@Override
public List<String> getAllAssociatedUNCFolders(String batchClassName) {
    DetachedCriteria criteria = criteria();
    criteria.setProjection(Projections.property(UNC_FOLDER));
    criteria.add(Restrictions.eq(NAME, batchClassName));
    criteria.addOrder(org.hibernate.criterion.Order.asc(IDENTIFIER));
    criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false)));
    return this.find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java

License:Open Source License

/**
 * API to get batch class identifier by UNC folder.
 * /*from   ww  w . j  a v a  2  s  .  c  o m*/
 * @param uncFolder {@link String}
 * @return {@link String}
 */
@Override
public String getBatchClassIdentifierByUNCfolder(String uncFolder) {
    DetachedCriteria criteria = criteria();
    criteria.setProjection(Projections.property(IDENTIFIER));
    criteria.add(Restrictions.eq(UNC_FOLDER, uncFolder));
    criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false)));
    return this.findSingle(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java

License:Open Source License

/**
 * This API returns list of all batch class identifiers.
 * // w w  w  .  j  a va2s  . com
 * @return List<String>
 */
@Override
public List<String> getAllBatchClassIdentifiers() {
    DetachedCriteria criteria = criteria();
    criteria.setProjection(Projections.property(IDENTIFIER));
    criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false)));
    return this.find(criteria);
}