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:org.egov.works.reports.service.WorkProgressRegisterService.java

License:Open Source License

@Transactional
public List<WorkProgressRegister> searchWorkProgressRegister(
        final WorkProgressRegisterSearchRequest workProgressRegisterSearchRequest) {
    if (workProgressRegisterSearchRequest != null) {
        final Criteria criteria = entityManager.unwrap(Session.class)
                .createCriteria(WorkProgressRegister.class);
        if (workProgressRegisterSearchRequest.getDepartment() != null)
            criteria.add(Restrictions.eq("department.id", workProgressRegisterSearchRequest.getDepartment()));
        if (workProgressRegisterSearchRequest.getWorkIdentificationNumber() != null)
            criteria.add(/*w w  w  .  ja v a  2  s. c  om*/
                    Restrictions.eq("winCode", workProgressRegisterSearchRequest.getWorkIdentificationNumber())
                            .ignoreCase());
        if (workProgressRegisterSearchRequest.getContractor() != null) {
            criteria.createAlias("contractor", "contractor");
            criteria.add(Restrictions.or(
                    Restrictions.ilike("contractor.code", workProgressRegisterSearchRequest.getContractor(),
                            MatchMode.ANYWHERE),
                    Restrictions.ilike("contractor.name", workProgressRegisterSearchRequest.getContractor(),
                            MatchMode.ANYWHERE)));
        }
        if (workProgressRegisterSearchRequest.getAdminSanctionFromDate() != null)
            criteria.add(Restrictions.ge("adminSanctionDate",
                    workProgressRegisterSearchRequest.getAdminSanctionFromDate()));
        if (workProgressRegisterSearchRequest.getAdminSanctionToDate() != null)
            criteria.add(Restrictions.le("adminSanctionDate",
                    workProgressRegisterSearchRequest.getAdminSanctionToDate()));

        if (workProgressRegisterSearchRequest.isSpillOverFlag())
            criteria.add(Restrictions.eq("spillOverFlag", workProgressRegisterSearchRequest.isSpillOverFlag()));

        criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
        return criteria.list();
    } else
        return new ArrayList<WorkProgressRegister>();
}

From source file:org.encuestame.core.cron.IndexRebuilder.java

License:Apache License

/**
 * Reindex domain object.//from   w ww .  j a  va  2 s  . co m
 * @param fullTextSession {@link FullTextSession}.
 * @param clazz domain class.
 */
public static void reindex(final FullTextSession fullTextSession, final Class<?> clazz) {
    log.debug(clazz.getName() + " purge index ...");
    //purge all index content.
    fullTextSession.purgeAll(clazz);
    fullTextSession.flushToIndexes();
    fullTextSession.getSearchFactory().optimize(clazz);
    log.debug(clazz.getName() + " starting index ...");
    final long startTime = System.currentTimeMillis();
    fullTextSession.setFlushMode(FlushMode.MANUAL);
    fullTextSession.setCacheMode(CacheMode.IGNORE);
    final Transaction transaction = fullTextSession.beginTransaction();
    //Scrollable results will avoid loading too many objects in memory
    final ScrollableResults results = fullTextSession.createCriteria(clazz).setFetchSize(100)
            .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).scroll(ScrollMode.FORWARD_ONLY);
    int index = 0;
    while (results.next()) {
        index++;
        fullTextSession.index(results.get(0));
        if (index % 100 == 0) {
            fullTextSession.flushToIndexes();
            fullTextSession.flush();
            fullTextSession.clear();
        }
    }
    fullTextSession.flushToIndexes();
    fullTextSession.getSearchFactory().optimize(clazz);
    transaction.commit();
    log.debug(clazz.getName() + " Reindex end in " + ((System.currentTimeMillis() - startTime) / 1000.0)
            + " seconds.");
}

From source file:org.eulerframework.web.core.base.dao.impl.hibernate5.BaseDao.java

License:Apache License

@Override
public List<T> queryByEntity(T entity) {
    DetachedCriteria detachedCriteria = DetachedCriteria.forClass(this.entityClass);
    detachedCriteria.add(Example.create(entity));
    detachedCriteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    List<T> result = this.query(detachedCriteria);
    evict(result);/*from  ww  w . ja  v a 2s  .c  o  m*/
    return result;
}

From source file:org.eurocarbdb.dataaccess.Eurocarb.java

License:Open Source License

public static <T> List<T> getRecentlyContributed(Class<T> c, int max_results) {
    //  does c implement Contributed?
    if (Contributed.class.isAssignableFrom(c)) {
        /*  TODO: remove explicit hibernate reference */
        List results = ((HibernateEntityManager) getEntityManager()).getHibernateSession().createCriteria(c)
                .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)
                .addOrder(Order.desc("dateEntered")).setMaxResults(max_results).list();

        if (results == null)
            return Collections.emptyList();

        return (List<T>) results;
    } else {/*from www  .  j  a  v a2s .co  m*/
        List results = ((HibernateEntityManager) getEntityManager()).getHibernateSession().createCriteria(c)
                .addOrder(Order.desc("id")).setMaxResults(max_results).list();

        if (results == null)
            return Collections.emptyList();

        return (List<T>) results;
    }
}

From source file:org.generationcp.middleware.dao.dms.DmsProjectDao.java

License:Open Source License

public List<DmsProject> getByIds(final Collection<Integer> projectIds) {
    final List<DmsProject> studyNodes = new ArrayList<>();
    try {//w w  w.j av a2  s. c o  m
        if (projectIds != null && !projectIds.isEmpty()) {
            final Criteria criteria = this.getSession().createCriteria(this.getPersistentClass());
            criteria.add(Restrictions.in(DmsProjectDao.PROJECT_ID, projectIds));
            criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

            return criteria.list();
        }
    } catch (final HibernateException e) {
        LOG.error(e.getMessage(), e);
        throw new MiddlewareQueryException(
                "Error in getByIds= " + projectIds + " query in DmsProjectDao: " + e.getMessage(), e);
    }
    return studyNodes;
}

From source file:org.generationcp.middleware.dao.dms.PhenotypeDao.java

License:Open Source License

public List<Phenotype> getPhenotypes(final Integer datasetId) {
    final Criteria criteria = this.getSession().createCriteria(this.getPersistentClass());
    criteria.createAlias("experiment", "experiment");
    criteria.add(Restrictions.eq("experiment.project.projectId", datasetId));
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    return criteria.list();
}

From source file:org.generationcp.middleware.manager.GermplasmDataManagerImpl.java

License:Open Source License

/**
 * (non-Javadoc)/*from  w w w .j av a2s  . c o  m*/
 *
 * @see org.generationcp.middleware.manager.api.GermplasmDataManager#getGermplasmWithAllNamesAndAncestry(java.util.Set, int)
 */
@SuppressWarnings("unchecked")
@Override
public List<Germplasm> getGermplasmWithAllNamesAndAncestry(final Set<Integer> gids,
        final int numberOfLevelsToTraverse) {
    final Monitor monitor = MonitorFactory.start("org.generationcp.middleware.manager.GermplasmDataManagerImpl"
            + ".getGermplasmWithAllNamesAndAncestry(Set<Integer> - SetSize(" + gids.size() + ") , int)");

    try {
        final StringBuilder commaSeparatedListOfGids = this.getGidsAsCommaSeparatedList(gids);

        final SQLQuery storedProcedure = this.getActiveSession()
                .createSQLQuery("CALL getGermplasmWithNamesAndAncestry(:gids, :numberOfLevelsToTraverse) ");
        storedProcedure.setParameter("gids", commaSeparatedListOfGids.toString());
        storedProcedure.setParameter("numberOfLevelsToTraverse", numberOfLevelsToTraverse);

        storedProcedure.addEntity("g", Germplasm.class);
        storedProcedure.addJoin("n", "g.names");
        // Be very careful changing anything here.
        // The entity has been added again because the distinct root entity works on the
        // Last added entity
        storedProcedure.addEntity("g", Germplasm.class);
        storedProcedure.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
        return storedProcedure.list();
    } finally {
        monitor.stop();
    }

}

From source file:org.goobi.production.flow.statistics.hibernate.UserDefinedFilter.java

License:Open Source License

/**
 * generates a hibernate criteria based on the string filter.
 *///from  w  w w.j av a 2s.c o m
private Criteria createCriteriaFromFilterString(String inFilter) {
    Session session = Helper.getHibernateSession();

    PaginatingCriteria crit = new PaginatingCriteria(Process.class, session);
    crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    /*
     * combine all parameters together this part was exported to
     * FilterHelper so that other Filters could access it
     */
    String message = FilterHelper.criteriaBuilder(session, inFilter, crit, null, myParameter, false, null,
            true);
    if (message.length() > 0) {
        myObservable.setMessage(message);
    }

    /*
     * used for step filter if query conditions include more than one step
     * by using a range the Criteria produces more than one item per
     * process, for each step it involves
     */
    createIDListFromCriteria(crit);
    crit = null;
    crit = createCriteriaFromIDList();

    return crit;
}

From source file:org.goobi.production.flow.statistics.hibernate.UserProjectFilter.java

License:Open Source License

private Criteria createCriteriaFromProjectID() {
    Session session = Helper.getHibernateSession();
    PaginatingCriteria crit = new PaginatingCriteria(Process.class, session);
    crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    crit.createCriteria("project", "proj");
    crit.add(Restrictions.eq("proj.id", projectID));
    return crit;//from w w  w .ja  v  a 2  s  . c  o m
}

From source file:org.grails.orm.hibernate.query.AbstractHibernateQuery.java

License:Apache License

@Override
public List list() {
    if (criteria == null)
        throw new IllegalStateException("Cannot execute query using a detached criteria instance");

    int projectionLength = 0;
    if (hibernateProjectionList != null) {
        org.hibernate.criterion.ProjectionList projectionList = hibernateProjectionList
                .getHibernateProjectionList();
        projectionLength = projectionList.getLength();
        if (projectionLength > 0) {
            criteria.setProjection(projectionList);
        }/*from w  ww  . j  a  va 2  s  . c  om*/
    }

    if (projectionLength < 2) {
        criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    }

    applyDefaultSortOrderAndCaching();
    applyFetchStrategies();

    return criteria.list();
}