Example usage for org.hibernate.criterion DetachedCriteria setResultTransformer

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

Introduction

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

Prototype

public DetachedCriteria setResultTransformer(ResultTransformer resultTransformer) 

Source Link

Document

Set the result transformer to use.

Usage

From source file:ch.systemsx.cisd.openbis.generic.server.dataaccess.db.EntityTypeDAO.java

License:Apache License

public final <T extends EntityTypePE> List<T> listEntityTypes() throws DataAccessException {
    final DetachedCriteria criteria = DetachedCriteria.forClass(getEntityClass());
    criteria.add(Restrictions.eq("databaseInstance", getDatabaseInstance()));
    final String entityKindName = entityKind.name().toLowerCase();
    criteria.setFetchMode(entityKindName + "TypePropertyTypesInternal", FetchMode.JOIN);
    criteria.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
    final List<T> list = cast(getHibernateTemplate().findByCriteria(criteria));
    return list;/*  w w w. j  a  v a 2s .  c  om*/
}

From source file:ch.systemsx.cisd.openbis.generic.server.dataaccess.db.ExperimentDAO.java

License:Apache License

public List<ExperimentPE> listExperimentsWithProperties(final ExperimentTypePE experimentTypeOrNull,
        final ProjectPE project) throws DataAccessException {
    assert project != null : "Unspecified project.";

    final DetachedCriteria criteria = DetachedCriteria.forClass(getEntityClass());
    if (experimentTypeOrNull != null) {
        criteria.add(Restrictions.eq("experimentType", experimentTypeOrNull));
    }/*  www . j  a  va2s.co m*/
    criteria.add(Restrictions.eq("projectInternal", project));
    criteria.setFetchMode("experimentProperties", FetchMode.JOIN);
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    final List<ExperimentPE> list = cast(getHibernateTemplate().findByCriteria(criteria));
    if (operationLog.isDebugEnabled()) {
        operationLog.debug(String.format("%d experiments have been found for project '%s'%s.", list.size(),
                project,
                (experimentTypeOrNull == null) ? "" : " and experiment type '" + experimentTypeOrNull + "'"));
    }
    return list;
}

From source file:ch.systemsx.cisd.openbis.generic.server.dataaccess.db.ExternalDataDAO.java

License:Apache License

public ExternalDataPE tryToFindFullDataSetByCode(String dataSetCode, boolean withPropertyTypes) {
    assert dataSetCode != null : "Unspecified data set code";

    final String mangledCode = CodeConverter.tryToDatabase(dataSetCode);
    final Criterion codeEq = Restrictions.eq("code", mangledCode);

    final DetachedCriteria criteria = DetachedCriteria.forClass(ENTITY_CLASS);
    criteria.add(codeEq);//w  ww .  j a v a  2 s  .co  m
    if (withPropertyTypes) {
        criteria.setFetchMode("dataSetType.dataSetTypePropertyTypesInternal", FetchMode.JOIN);
    }
    criteria.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
    final List<ExternalDataPE> list = cast(getHibernateTemplate().findByCriteria(criteria));
    final ExternalDataPE entity = tryFindEntity(list, "data set");
    if (operationLog.isDebugEnabled()) {
        operationLog
                .debug(String.format("External data '%s' found for data set code '%s'.", entity, dataSetCode));
    }
    return entity;
}

From source file:ch.systemsx.cisd.openbis.generic.server.dataaccess.db.SampleTypeDAO.java

License:Apache License

public final List<SampleTypePE> listSampleTypes() throws DataAccessException {
    final DetachedCriteria criteria = DetachedCriteria.forClass(getEntityClass());
    criteria.add(Restrictions.eq("databaseInstance", getDatabaseInstance()));
    criteria.setFetchMode("sampleTypePropertyTypesInternal", FetchMode.JOIN);
    criteria.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
    final List<SampleTypePE> list = cast(getHibernateTemplate().findByCriteria(criteria));
    if (operationLog.isDebugEnabled()) {
        operationLog.debug(String.format("%s: %d sample type(s) have been found.",
                MethodUtils.getCurrentMethod().getName(), list.size()));
    }/*from ww  w. j a  v  a  2s .c o m*/
    return list;
}

From source file:com.allinfinance.commquery.dao.CommQueryDAO.java

License:Open Source License

/**
 * /*from  w w  w .j a va2  s. c om*/
 * 
 * @param currentPage
 * @param clazz
 * @return
 */
public List<Object> getListByPage(int currentPage, DetachedCriteria detachedCriteria) {
    int pageSize = 100;
    // ??,?select * from xxx...
    detachedCriteria.setProjection(null);
    detachedCriteria.setResultTransformer(DetachedCriteria.ROOT_ENTITY);
    int firstResult = currentPage * pageSize;
    int maxResults = pageSize;
    List<Object> rows = this.getHibernateTemplate().findByCriteria(detachedCriteria, firstResult, maxResults);
    return rows;
}

From source file:com.benfante.minimark.blo.QuestionBo.java

License:Apache License

/**
 * Search questions by example.//ww  w .ja va2s  .c o m
 * 
 * @param questionBean The values for searching questions.
 * @return The list of questions matching the questionBean values.
 */
public List<Question> search(QuestionBean questionBean) {
    DetachedCriteria crit = null;
    if (StringUtils.isBlank(questionBean.getType())) {
        crit = DetachedCriteria.forClass(Question.class);
    } else {
        if ("open".equals(questionBean.getType())) {
            crit = DetachedCriteria.forClass(OpenQuestion.class);
            if (StringUtils.isNotBlank(questionBean.getVisualization())) {
                crit.add(Restrictions.eq("visualization", questionBean.getVisualization()));
            }
        } else if ("closed".equals(questionBean.getType())) {
            crit = DetachedCriteria.forClass(ClosedQuestion.class);
        } else {
            throw new IllegalArgumentException("Unknown question type (" + questionBean.getType() + ")");
        }
    }
    if (StringUtils.isNotBlank(questionBean.getTitle())) {
        crit.add(Restrictions.ilike("title", questionBean.getTitle(), MatchMode.ANYWHERE));
    }
    if (questionBean.getWeight() != null) {
        crit.add(Restrictions.eq("weight", questionBean.getWeight()));
    }
    if (questionBean.getCourse() != null && questionBean.getCourse().getId() != null) {
        crit.add(Restrictions.eq("course.id", questionBean.getCourse().getId()));
    }
    crit.addOrder(Order.asc("title"));
    crit.addOrder(Order.asc("content"));
    if (StringUtils.isNotBlank(questionBean.getTags())) {
        crit.createAlias("tags", "tags");
        crit.createAlias("tags.tag", "tag");
        crit.add(Restrictions.in("tag.name", questionBean.getTagList()));
    }
    crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    return questionDao.searchByCriteria(crit);
}

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

License:Open Source License

/**
 * This API will fetch all the batch classes of current user role.
 * /*from   ww  w.  ja v  a  2  s .  co  m*/
 * @param userRoles Set<String>
 * @return List<BatchClass>
 */
@Override
public List<BatchClass> getAllBatchClassesByUserRoles(final Set<String> userRoles) {
    DetachedCriteria criteria = criteria();
    List<BatchClass> batchClassList = null;
    if (userRoles == null) {
        batchClassList = new ArrayList<BatchClass>();
    } else {
        List<String> roleList = new ArrayList<String>();
        for (String userRole : userRoles) {
            if (null == userRole || userRole.isEmpty()) {
                continue;
            }
            roleList.add(userRole);
        }
        criteria.createAlias(ASSIGNED_GROUPS, ASSIGNED_GROUPS);
        criteria.add(Restrictions.in(ASSIGNED_GROUPS_NAME, roleList));
        criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false)));
        criteria.addOrder(org.hibernate.criterion.Order.asc(BATCH_ID));
        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
        batchClassList = find(criteria);
    }

    return batchClassList;
}

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

License:Open Source License

/**
 * API to the batch class with respect to the given batch class id and the roles provided.
 * /*from ww  w.j  a v  a  2s .c  o  m*/
 * @param userRoles {@link Set<{@link String}>}
 * @param batchClassID {@link String}
 * @return {@link BatchClass}
 */
@Override
public BatchClass getBatchClassByUserRoles(final Set<String> userRoles, String batchClassID) {
    DetachedCriteria criteria = criteria();
    List<BatchClass> batchClassList = null;
    BatchClass batchClass = null;
    if (userRoles == null) {
        batchClassList = new ArrayList<BatchClass>();
    } else {
        List<String> roleList = new ArrayList<String>();
        for (String userRole : userRoles) {
            if (null == userRole || userRole.isEmpty()) {
                continue;
            }
            roleList.add(userRole);
        }
        criteria.createAlias(ASSIGNED_GROUPS, ASSIGNED_GROUPS);
        criteria.add(Restrictions.in(ASSIGNED_GROUPS_NAME, roleList));
        criteria.add(Restrictions.eq(IDENTIFIER, batchClassID));
        criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false)));
        criteria.addOrder(org.hibernate.criterion.Order.asc(BATCH_ID));
        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
        batchClassList = find(criteria);
        if (batchClassList != null && !batchClassList.isEmpty()) {
            batchClass = batchClassList.get(0);
        }
    }

    return batchClass;
}

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

License:Open Source License

/**
 * An API to fetch all Field types by document type name.
 * /*from w ww  .  java 2s. c  o  m*/
 * @param docTypeName String
 * @param batchInstanceIdentifier String
 * @param isKVExtraction boolean
 * @return List<FieldType>
 */
@Override
public List<FieldType> getFdTypeByDocumentTypeName(String docTypeName, String batchInstanceIdentifier,
        boolean isKVExtraction) {
    LOG.info("batchInstanceID ID  : " + batchInstanceIdentifier);
    DetachedCriteria criteria = criteria();
    criteria.createAlias(DOC_TYPE, DOC_TYPE, JoinFragment.INNER_JOIN);
    criteria.add(Restrictions.eq(DOC_TYPE_NAME, docTypeName));
    criteria.createAlias(DOC_TYPE_BATCH_CLASS, BATCH_CLASS1, JoinFragment.INNER_JOIN);

    if (isKVExtraction) {
        criteria.setFetchMode("kvExtraction", FetchMode.JOIN);
        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    }

    DetachedCriteria subQuery = criteria(BatchInstance.class);
    subQuery.add(Restrictions.eq(IDENTIFIER, batchInstanceIdentifier));
    subQuery.createAlias(BATCH_CLASS, BATCH_CLASS2, JoinFragment.INNER_JOIN);
    subQuery.setProjection(Projections.property(BATCH_CLASS2_IDENTIFIER));
    criteria.add(Subqueries.propertyEq(BATCH_CLASS1_IDENTIFIER, subQuery));
    criteria.addOrder(org.hibernate.criterion.Order.asc(FIELD_ORDER_NUMBER));
    return find(criteria);
}

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

License:Open Source License

/**
 * An API to fetch all Field types by document type name.
 * /*  w w w.ja  v a  2s  .c  o  m*/
 * @param docTypeName String
 * @param batchInstanceIdentifier String
 * @return List<FieldType>
 */
@Override
public List<FieldType> getFdTypeAndRegexValidationByDocTypeName(String docTypeName,
        String batchInstanceIdentifier) {

    LOG.info("batchInstanceID ID  : " + batchInstanceIdentifier);
    DetachedCriteria criteria = criteria();
    criteria.createAlias(DOC_TYPE, DOC_TYPE, JoinFragment.INNER_JOIN);
    criteria.add(Restrictions.eq(DOC_TYPE_NAME, docTypeName));
    criteria.createAlias(DOC_TYPE_BATCH_CLASS, BATCH_CLASS1, JoinFragment.INNER_JOIN);

    criteria.setFetchMode(REGEX_VALIDATION, FetchMode.JOIN);
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    DetachedCriteria subQuery = criteria(BatchInstance.class);
    subQuery.add(Restrictions.eq(IDENTIFIER, batchInstanceIdentifier));
    subQuery.createAlias(BATCH_CLASS, BATCH_CLASS2, JoinFragment.INNER_JOIN);
    subQuery.setProjection(Projections.property(BATCH_CLASS2_IDENTIFIER));
    criteria.add(Subqueries.propertyEq(BATCH_CLASS1_IDENTIFIER, subQuery));
    criteria.addOrder(org.hibernate.criterion.Order.asc(FIELD_ORDER_NUMBER));

    return find(criteria);

}