Example usage for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY

List of usage examples for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY

Introduction

In this page you can find the example usage for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY.

Prototype

ResultTransformer DISTINCT_ROOT_ENTITY

To view the source code for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY.

Click Source Link

Document

Each row of results is a distinct instance of the root entity

Usage

From source file:com.gettec.fsnip.fsn.dao.product.impl.ProductDAOImpl.java

@Override
public Product checkProduct(Product product) throws ServiceException {
    Criteria criteria = getSession().createCriteria(Product.class);
    BusinessUnit businessUnit = product.getProducer();
    if (null != businessUnit && !StringUtil.isBlank(businessUnit.getName())) {
        criteria.createAlias("producer", "producer");
        criteria.add(Restrictions.eq("producer.name", businessUnit.getName()));
    }//from   w  w w. ja v  a 2 s .c  o m
    if (!StringUtil.isBlank(product.getName())) {
        criteria.add(Restrictions.eq("name", product.getName()));
    }
    if (!StringUtil.isBlank(product.getFormat())) {
        criteria.add(Restrictions.eq("format", product.getFormat()));
    }
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);// ROOT_ENTITY

    if (criteria.list().size() > 0) {
        return (Product) criteria.list().get(0);
    }
    return null;
}

From source file:com.github.dactiv.orm.core.hibernate.support.BasicHibernateDao.java

License:Apache License

/**
 * Querydistinct transformer,????distinct?
 * //from w  w  w . j a v a2s. c  o  m
 * @param queryOrNamedQuery hql HibernateNamedQuery
 * @param values 
 * 
 * @return List
 */
public <X> List<X> distinct(String queryOrNamedQuery, Object... values) {
    Query query = createQuery(queryOrNamedQuery, values);
    query.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    return query.list();
}

From source file:com.github.dactiv.orm.core.hibernate.support.BasicHibernateDao.java

License:Apache License

/**
 * Querydistinct transformer,????distinct?
 * /*  w ww .j a  v a2  s .c o  m*/
 * @param queryOrNamedQuery hql HibernateNamedQuery
 * @param values 
 * 
 * @return List
 */
public <X> List<X> distinct(String queryOrNamedQuery, Map<String, Object> values) {
    Query query = createQuery(queryOrNamedQuery, values);
    query.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    return query.list();
}

From source file:com.gp.cong.logisoft.hibernate.dao.SedSchedulebDetailsDAO.java

public List findByDr(String fileNo, String trnRef) throws Exception {
    Criteria criteria = getCurrentSession().createCriteria(SedSchedulebDetails.class);
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    if (CommonUtils.isNotEmpty(trnRef)) {
        criteria.add(Restrictions.eq("trnref", trnRef));
        criteria.addOrder(Order.asc("trnref"));
        return criteria.list();
    }//from w w w .j  av  a  2 s .co m
    return null;
}

From source file:com.hmsinc.epicenter.model.analysis.impl.MaterializedViewAnalysisQueries.java

License:Open Source License

@SuppressWarnings("unchecked")
public org.hibernate.Criteria createGetCasesQuery(AnalysisParameters analysisParameters, Long offset,
        Long numRows) {//from w ww.  jav  a2s  .c  o m

    Validate.notNull(offset, "Offset must be set.");
    Validate.notNull(numRows, "Number of returned rows must be set.");
    Validate.notNull(analysisParameters.getDataType(), "Data type must be set.");

    Class<? extends Interaction> interactionClass = null;
    for (ClassificationTarget target : analysisParameters.getDataType().getTargets()) {
        Validate.notNull(target.getInteractionClass(), "Interaction class was null for " + target.toString());
        if (interactionClass == null) {
            interactionClass = target.getInteractionClass();
        } else {
            Validate.isTrue(interactionClass.equals(target.getInteractionClass()),
                    "Inconsistent interaction classes");
        }
    }

    // Query is a subselect of Interaction based on materialized view.
    final Class<? extends Serializable> mv = (analysisParameters.getClassifications() == null
            || analysisParameters.getClassifications().size() == 0 ? AnalysisView.class
                    : ClassifiedAnalysisView.class);

    final QueryBuilder query = new QueryBuilder().addEntity(mv, "analysis").addProperty("distinct(analysis.id)")
            .addProperty("analysis.interactionDate").addOrder("analysis.interactionDate asc");

    applyAttributes(query, analysisParameters);
    applyClassifications(query, analysisParameters);

    // Geography
    applyGeography(query, analysisParameters.getContainer().getClass(), analysisParameters);

    disableNestedLoops(entityManager);

    final Query q = query.toQuery((Session) entityManager.getDelegate(), true);

    q.setFirstResult(offset.intValue());
    q.setMaxResults(numRows.intValue());
    final List<Object[]> items = q.list();
    final List<Long> interactionList = new ArrayList<Long>();
    for (Object[] item : items) {
        interactionList.add((Long) item[0]);
    }
    Criteria ret = null;

    enableNestedLoops(entityManager);

    if (interactionList.size() > 0) {

        // We need to use a ResultTransformer here to avoid duplicate rows.
        ret = criteriaQuery(entityManager, interactionClass).setFetchMode("classifications", FetchMode.JOIN)
                .setFetchMode("patient", FetchMode.JOIN).setFetchMode("patientDetail", FetchMode.JOIN)
                .add(Restrictions.in("id", interactionList))
                .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    }
    return ret;
}

From source file:com.hmsinc.epicenter.model.workflow.impl.WorkflowRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
public List<Subscription> getSubscriptions(Classification classification, Geography geography) {

    Validate.notNull(classification, "Classification must be specified.");
    Validate.notNull(geography, "Geography must be specified.");

    final Criteria c = criteriaQuery(entityManager, Subscription.class);
    c.createCriteria("classifications").add(Restrictions.idEq(classification.getId()));
    c.createCriteria("geographies").add(SpatialRestrictions.contains("geometry", geography.getGeometry()));
    c.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    return c.list();

}

From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*  w w  w  . j  a  va2 s  . com*/
@Transactional(readOnly = true)
public Set<Permission> getPrincipalPermissions(Collection<Principal> principals,
        PermissionType... permissionTypes) {

    if (principals == null) {
        return new HashSet<Permission>();
    }

    Criteria crit = createCriteria(Permission.class)
            .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    List<String> list = new ArrayList<String>();
    for (PermissionType t : permissionTypes) {
        list.add(t.getResourceKey());
    }

    if (list.size() > 0) {
        crit = crit.add(Restrictions.in("resourceKey", list));
    }

    List<Long> ids = new ArrayList<Long>();
    for (Principal p : principals) {
        ids.add(p.getId());
    }

    crit = crit.createCriteria("roles").createCriteria("principals").add(Restrictions.in("id", ids));

    return new HashSet<Permission>(crit.list());

}

From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/* w ww.j  a v a 2s. co  m*/
@Transactional(readOnly = true)
public Set<Principal> getPrincipalsWithPermissions(PermissionType permission) {

    Criteria crit = createCriteria(Principal.class)
            .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).createCriteria("roles")
            .createCriteria("permissions").add(Restrictions.eq("resourceKey", permission.getResourceKey()));

    return new HashSet<Principal>(crit.list());
}

From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*from   ww  w  .  j a va  2s . c  o  m*/
@Transactional(readOnly = true)
public Set<Role> getRolesWithPermissions(PermissionType permission) {

    Criteria crit = createCriteria(Role.class).setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)
            .createCriteria("permissions").add(Restrictions.eq("resourceKey", permission.getResourceKey()));

    return new HashSet<Role>(crit.list());
}

From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//from   w  ww  . j a v  a  2 s  .  c om
@Transactional(readOnly = true)
public Set<Role> getRolesWithPermissions(Permission permission) {

    Criteria crit = createCriteria(Role.class).setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)
            .createCriteria("permissions").add(Restrictions.eq("resourceKey", permission.getResourceKey()));

    return new HashSet<Role>(crit.list());
}