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:dz.alkhwarizmix.framework.java.dao.impl.AbstractAlKhwarizmixDAO.java

License:Open Source License

/**
 *//* w ww  .  j av  a  2s  .com*/
@Override
public final List getList(final DetachedCriteria criteria, final int firstResult, final int maxResult)
        throws AlKhwarizmixDAOException {
    getLogger().trace("getList({})", criteria);

    try {
        final List result = criteria.getExecutableCriteria(getHibernateCurrentSession()).list();
        return result;
        // return getHibernateCurrentSession().findByCriteria(criteria,
        // firstResult, maxResult);
    } catch (final DataAccessException e) {
        throw new AlKhwarizmixDAOException(e);
    }
}

From source file:edu.ur.hibernate.ir.researcher.db.HbFieldDAO.java

License:Apache License

/**
 * Get all fields in name order.//from   ww  w .j  av a  2 s.co  m
 * 
 * @see edu.ur.NameListDAO#getAllNameOrder()
 */
@SuppressWarnings("unchecked")
public List<Field> getAllNameOrder() {
    DetachedCriteria dc = DetachedCriteria.forClass(Field.class);
    dc.addOrder(Order.asc("name"));
    return (List<Field>) dc.getExecutableCriteria(hbCrudDAO.getSessionFactory().getCurrentSession()).list();
}

From source file:flexmud.db.HibernateUtil.java

License:Open Source License

public static List fetch(DetachedCriteria detachedCriteria) {
    Session session;//from  w  w  w  .  j  a v  a 2 s.  co  m
    Transaction transaction;

    session = HibernateUtil.getSessionFactory().openSession();
    transaction = session.beginTransaction();

    Criteria criteria = detachedCriteria.getExecutableCriteria(session);

    try {
        return criteria.list();
    } catch (Exception e) {
        LOGGER.error("Error retrieving data for criteria", e);
        return null;
    } finally {
        transaction.commit();
        session.close();
    }
}

From source file:fr.gael.dhus.database.dao.interfaces.HibernateDao.java

License:Open Source License

@SuppressWarnings("unchecked")
public List<T> listCriteria(DetachedCriteria detached, int skip, int top) {
    SessionFactory factory = getSessionFactory();
    org.hibernate.classic.Session session = factory.getCurrentSession();

    Criteria criteria = detached.getExecutableCriteria(session);

    if (skip > 0)
        criteria.setFirstResult(skip);/*from  w  w w  . j ava2  s  .  c o  m*/
    if (top > 0)
        criteria.setMaxResults(top);
    return criteria.list();
}

From source file:fr.gael.dhus.database.dao.interfaces.HibernateDao.java

License:Open Source License

@SuppressWarnings("unchecked")
public T uniqueResult(DetachedCriteria criteria) {
    return (T) criteria.getExecutableCriteria(getSessionFactory().getCurrentSession()).uniqueResult();
}

From source file:fr.gael.dhus.database.dao.interfaces.HibernateDao.java

License:Open Source License

public int count(DetachedCriteria detached) {
    Session session = getSessionFactory().getCurrentSession();
    Criteria criteria = detached.getExecutableCriteria(session);
    Object result = criteria.uniqueResult();
    return ((Number) result).intValue();
}

From source file:info.jtrac.repository.HibernateJtracDao.java

License:Apache License

@Override
@Transactional(propagation = Propagation.SUPPORTS)
public List<Item> findItems(ItemSearch itemSearch) {
    int pageSize = itemSearch.getPageSize();
    // TODO: if we are ordering by a custom column, we must load the whole
    // list to do an in-memory sort. we need to find a better way
    Field.Name sortFieldName = Field.isValidName(itemSearch.getSortFieldName())
            ? Field.convertToName(itemSearch.getSortFieldName())
            : null;//w w w  .ja  va 2  s . c  o m
    // only trigger the in-memory sort for drop-down fields and when querying within a space
    // UI currently does not allow you to sort by custom field when querying across spaces, but check again
    boolean doInMemorySort = sortFieldName != null && sortFieldName.isDropDownType()
            && itemSearch.getSpace() != null;
    DetachedCriteria criteria = getCriteria(itemSearch);
    if (pageSize == -1 || doInMemorySort) {
        @SuppressWarnings("unchecked")
        List<Item> list = criteria.getExecutableCriteria(getSession()).list();
        if (!list.isEmpty() && doInMemorySort) {
            doInMemorySort(list, itemSearch);
        }
        itemSearch.setResultCount(list.size());
        if (pageSize != -1) {
            // order-by was requested on custom field, so we loaded all results, but only need one page
            int start = pageSize * itemSearch.getCurrentPage();
            int end = Math.min(start + itemSearch.getPageSize(), list.size());
            return list.subList(start, end);
        }
        return list;
    } else {
        // pagination
        if (itemSearch.isBatchMode()) {
            entityManager.clear();
        }
        int firstResult = pageSize * itemSearch.getCurrentPage();
        @SuppressWarnings("unchecked")
        List<Item> list = criteria.getExecutableCriteria(getSession()).setFirstResult(firstResult)
                .setMaxResults(pageSize).list();
        if (!itemSearch.isBatchMode()) {
            criteria = getCriteriaForCount(itemSearch).criteria;
            criteria.setProjection(Projections.rowCount());
            Long count = (Long) criteria.getExecutableCriteria(getSession()).list().get(0);
            itemSearch.setResultCount(count);
        }
        return list;
    }
}

From source file:jp.ac.tokushima_u.is.ll.common.orm.hibernate.HibernateDao.java

License:Apache License

@SuppressWarnings("unchecked")
public Page<T> findPage(final Page<T> page, final DetachedCriteria detachedCriteria) {
    Assert.notNull(page, "page should not be null");

    Criteria c = detachedCriteria.getExecutableCriteria(getSession());

    if (page.isAutoCount()) {
        long totalCount = countCriteriaResult(c);
        page.setTotalCount(totalCount);/*from   w w w.ja v a 2 s . c  o  m*/
    }

    setPageParameter(c, page);
    List result = c.list();
    page.setResult(result);
    return page;
}

From source file:jp.ac.tokushima_u.is.ll.common.orm.hibernate.SimpleHibernateDao.java

License:Apache License

public List<T> find(DetachedCriteria detachedCriteria) {
    Criteria criteria = detachedCriteria.getExecutableCriteria(getSession());
    return criteria.list();
}

From source file:kr.debop4j.access.test.repository.CriteriaSampleTest.java

License:Apache License

@Test
@Transactional(readOnly = true)/*from w w w  .  ja  v a 2  s .  co  m*/
public void groupingTest() {

    DetachedCriteria dc = DetachedCriteria.forClass(Employee.class);

    dc.createAlias("company", "c").createAlias("empGrade", "eg")
            .setProjection(Projections.projectionList().add(Projections.groupProperty("c.code"))
                    .add(Projections.groupProperty("eg.code")).add(Projections.rowCount()));

    List loaded = dc.getExecutableCriteria(hibernateDao.getSession()).list();
    log.info("Group by = [{}]", loaded);
}