Example usage for org.hibernate.criterion DetachedCriteria getExecutableCriteria

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

Introduction

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

Prototype

public Criteria getExecutableCriteria(Session session) 

Source Link

Document

Get an executable instance of Criteria to actually run the query.

Usage

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

License:Open Source License

/**
*   Converts the given {@link DetachedCriteria} into a {@link Criteria}
*   that can be executed./*from ww w  .ja  v a  2 s.  co m*/
*/
public static final Criteria convertToCriteria(DetachedCriteria dc) {
    return dc.getExecutableCriteria(getSessionFactory().getCurrentSession());
}

From source file:org.eurocarbdb.resourcesdb.io.HibernateAccess.java

License:Open Source License

public static List<?> getObjectList(DetachedCriteria queryCriteria) {
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();//from   ww w  .  j a v a2 s  .co  m
    List<?> resultList = queryCriteria.getExecutableCriteria(session).list();
    return resultList;
}

From source file:org.faster.orm.service.hibernate.HibernateDaoSupport.java

License:Open Source License

@SuppressWarnings("rawtypes")
protected List fetchPage(final DetachedCriteria criteria, final int page, final int limit,
        QueryOption queryOption) {/* w  w w  .  j a va 2  s.c  om*/
    renderCriteria(criteria);
    Criteria executableCriteria = criteria.getExecutableCriteria(getSession());
    if (queryOption != null) {
        executableCriteria.setCacheable(queryOption.isCacheEnabled());
        if (cacheRegion != null) {
            executableCriteria.setCacheRegion(cacheRegion);
        }
    }
    if (page >= 1) {
        executableCriteria.setFirstResult((page - 1) * limit);
    }
    if (limit > 0) {
        executableCriteria.setMaxResults(limit);
    }
    return executableCriteria.list();
}

From source file:org.fornax.cartridges.sculptor.framework.accessimpl.jpahibernate.JpaHibFindByExampleAccessImpl.java

License:Apache License

@Override
public void performExecute() throws PersistenceException {
    Example example = createExample();//from w w w .j ava2  s .c  o  m

    if (excludeProperties != null) {
        for (int i = 0; i < excludeProperties.length; i++) {
            example.excludeProperty(excludeProperties[i]);
        }
    }

    DetachedCriteria crit = createCriteria(example);

    if (orderBy != null) {
        if (orderByAsc) {
            crit.addOrder(Order.asc(orderBy));
        } else {
            crit.addOrder(Order.desc(orderBy));
        }
    }
    Session hibernateSession = HibernateSessionHelper.getHibernateSession(getEntityManager());
    final Criteria criteria = crit.getExecutableCriteria(hibernateSession);
    prepareCache(criteria);

    result = executeFind(criteria);
}

From source file:org.generationcp.middleware.dao.GermplasmDAO.java

License:Open Source License

@SuppressWarnings("unchecked")
public List<Germplasm> getGenerativeChildren(final Integer gid) {
    try {//from  w w  w. java 2 s .c  o  m
        final List<Germplasm> children = new ArrayList<>();
        // Find generative children (gnpgs > 2)
        final DetachedCriteria generativeChildrenCriteria = DetachedCriteria.forClass(Germplasm.class);
        generativeChildrenCriteria
                .add(Restrictions.or(Restrictions.eq("gpid1", gid), Restrictions.eq("gpid2", gid)));
        // = Two or more parents
        generativeChildrenCriteria.add(Restrictions.ge("gnpgs", 2));
        // = Record is unchanged
        generativeChildrenCriteria.add(Restrictions.eq(GermplasmDAO.GRPLCE, 0));
        // = Record is not deleted or replaced.
        generativeChildrenCriteria.add(Restrictions.eq(GermplasmDAO.DELETED, Boolean.FALSE));

        children.addAll(generativeChildrenCriteria.getExecutableCriteria(this.getSession()).list());

        // Find additional children via progenitor linkage
        final DetachedCriteria otherChildrenCriteria = DetachedCriteria.forClass(Progenitor.class);
        otherChildrenCriteria.add(Restrictions.eq("progenitorGid", gid));

        final List<Progenitor> otherChildren = otherChildrenCriteria.getExecutableCriteria(this.getSession())
                .list();
        final Set<Integer> otherChildrenGids = new HashSet<>();
        for (final Progenitor progenitor : otherChildren) {
            otherChildrenGids.add(progenitor.getGermplasm().getGid());
        }

        if (!otherChildrenGids.isEmpty()) {
            children.addAll(this.getByGIDList(new ArrayList<>(otherChildrenGids)));
        }
        return children;
    } catch (final HibernateException e) {
        final String message = "Error executing GermplasmDAO.getGenerativeChildren(gid={}) : {}";
        GermplasmDAO.LOG.error(message, gid, e.getMessage());
        throw new MiddlewareQueryException(message, e);
    }
}

From source file:org.generationcp.middleware.dao.GermplasmDAO.java

License:Open Source License

public List<Germplasm> getManagementGroupMembers(final Integer mgid) {
    if (mgid == null || mgid == 0) {
        return Collections.emptyList();
    }//from  w w w. j ava  2s. co m
    try {
        final DetachedCriteria criteria = DetachedCriteria.forClass(Germplasm.class);
        criteria.add(Restrictions.eq("mgid", mgid));
        // = Record is unchanged
        criteria.add(Restrictions.eq(GermplasmDAO.GRPLCE, 0));
        // = Record is not deleted or replaced.
        criteria.add(Restrictions.eq(GermplasmDAO.DELETED, Boolean.FALSE));

        @SuppressWarnings("unchecked")
        final List<Germplasm> groupMembers = criteria.getExecutableCriteria(this.getSession()).list();
        // Prime the names collection before returning ;)
        for (final Germplasm g : groupMembers) {
            g.getNames().size();
        }
        return groupMembers;
    } catch (final HibernateException e) {
        final String message = "Error executing GermplasmDAO.getGroupMembersByGroupId(mgid={}) : {}";
        GermplasmDAO.LOG.error(message, mgid, e.getMessage());
        throw new MiddlewareQueryException(message, e);
    }
}

From source file:org.generationcp.middleware.dao.GermplasmDAO.java

License:Open Source License

public List<Germplasm> getPreviousCrosses(final Germplasm currentCross, final Germplasm female,
        final Germplasm male) {
    try {//ww w  .  jav a  2s  .c  om
        final DetachedCriteria criteria = DetachedCriteria.forClass(Germplasm.class);

        // (female x male) is not the same as (male x female) so the order is important.
        criteria.add(Restrictions.eq("gpid1", female.getGid()));
        criteria.add(Restrictions.eq("gpid2", male.getGid()));
        // Restrict to cases where two parents are involved.
        criteria.add(Restrictions.eq("gnpgs", 2));
        // = Record is unchanged.
        criteria.add(Restrictions.eq(GermplasmDAO.GRPLCE, 0));
        // Exclude current cross. We are finding "previous" crosses.
        criteria.add(Restrictions.ne("gid", currentCross.getGid()));
        // = Record is not or replaced.
        criteria.add(Restrictions.eq(GermplasmDAO.DELETED, Boolean.FALSE));
        // Oldest created cross will be first in list.
        criteria.addOrder(Order.asc("gid"));

        @SuppressWarnings("unchecked")
        final List<Germplasm> previousCrosses = criteria.getExecutableCriteria(this.getSession()).list();
        return previousCrosses;
    } catch (final HibernateException e) {
        final String message = "Error executing GermplasmDAO.getPreviousCrosses(female = {}, male = {}): {}";
        GermplasmDAO.LOG.error(message, female, male, e.getMessage());
        throw new MiddlewareQueryException(message, e);
    }
}

From source file:org.geolatte.common.cql.hibernate.HibernateCriteriaBuilderTest.java

License:Open Source License

/**
 * Helper to load a collection of objects from the database, according to the given criteria.
 * @param detachedCriteria Criteria used to load the objects.
 * @param hibernateUtil Hibernate utility class used to access the database.
 * @return The list of loaded objects.//w ww.ja v a 2 s. c  o m
 */
private List<FilterableObject> load(DetachedCriteria detachedCriteria, HibernateUtil hibernateUtil) {

    Session session = hibernateUtil.getSessionFactory().openSession();
    Criteria criteria = detachedCriteria == null ? null : detachedCriteria.getExecutableCriteria(session);

    HibernateHqlAndCriteriaToSqlTranslator trans = new HibernateHqlAndCriteriaToSqlTranslator();
    trans.setSessionFactory(hibernateUtil.getSessionFactory());
    System.out.println("SQL executed = " + trans.toSql(criteria));

    return criteria.list();

}

From source file:org.geolatte.featureserver.dbase.StandardFeatureReader.java

License:Open Source License

private Criteria toExecutableCriteria(SessionFactory factory, Class entityClass, DetachedCriteria detCrit) {
    if (detCrit == null) {
        return factory.getCurrentSession().createCriteria(entityClass);
    } else {/* w  w  w.ja v  a2 s  . co m*/
        return detCrit.getExecutableCriteria(factory.getCurrentSession());
    }
}

From source file:org.jspresso.framework.application.backend.persistence.hibernate.HibernateBackendController.java

License:Open Source License

private <T extends IEntity> List<T> find(final DetachedCriteria criteria, final int firstResult,
        final int maxResults, final EMergeMode mergeMode) {
    List<T> entities = getTransactionTemplate().execute(new TransactionCallback<List<T>>() {

        @SuppressWarnings("unchecked")
        @Override/*w  w w.  j  av a  2 s.c om*/
        public List<T> doInTransaction(TransactionStatus status) {
            Criteria executableCriteria = criteria.getExecutableCriteria(getHibernateSession());
            if (firstResult >= 0) {
                executableCriteria.setFirstResult(firstResult);
            }
            if (maxResults > 0) {
                executableCriteria.setMaxResults(maxResults);
            }
            List<T> entities = executableCriteria.list();
            if (mergeMode != null) {
                entities = merge(entities, mergeMode);
            }
            return entities;
        }
    });
    if (isUnitOfWorkActive()) {
        entities = cloneInUnitOfWork(entities);
    }
    return entities;
}