Example usage for org.hibernate Criteria setCacheable

List of usage examples for org.hibernate Criteria setCacheable

Introduction

In this page you can find the example usage for org.hibernate Criteria setCacheable.

Prototype

public Criteria setCacheable(boolean cacheable);

Source Link

Document

Enable caching of this query result, provided query caching is enabled for the underlying session factory.

Usage

From source file:kr.debop4j.data.hibernate.repository.impl.HibernateDao.java

License:Apache License

@Override
public final <T> List<T> findAll(Class<T> clazz, int firstResult, int maxResults, Order... orders) {
    if (ArrayTool.isEmpty(orders)) {
        Query query = getSession().createQuery("from " + clazz.getName());
        HibernateTool.setPaging(query, firstResult, maxResults);

        return (List<T>) query.setCacheable(cacheable).list();
    } else {/* w ww .  j  av a  2 s.com*/
        Criteria criteria = getSession().createCriteria(clazz);
        HibernateTool.setPaging(criteria, firstResult, maxResults);
        if (!ArrayTool.isEmpty(orders))
            HibernateTool.addOrders(criteria, orders);

        return criteria.setCacheable(cacheable).list();
    }
}

From source file:kr.debop4j.data.hibernate.repository.impl.HibernateDao.java

License:Apache License

@Override
public final <T> List<T> find(Class<T> clazz, Criteria criteria, Order... orders) {
    if (!ArrayTool.isEmpty(orders))
        HibernateTool.addOrders(criteria, orders);

    return criteria.setCacheable(cacheable).list();
}

From source file:kr.debop4j.data.hibernate.repository.impl.HibernateDao.java

License:Apache License

@Override
public final <T> List<T> find(Class<T> clazz, Criteria criteria, int firstResult, int maxResults,
        Order... orders) {//from   w  ww.j a v  a2s. c  om
    HibernateTool.setPaging(criteria, firstResult, maxResults);
    if (!ArrayTool.isEmpty(orders))
        HibernateTool.addOrders(criteria, orders);

    return criteria.setCacheable(cacheable).list();
}

From source file:kr.debop4j.data.hibernate.repository.impl.HibernateDao.java

License:Apache License

@Override
public <T> T findUnique(Class<T> clazz, Criteria criteria) {
    return (T) criteria.setCacheable(cacheable).uniqueResult();
}

From source file:kr.debop4j.data.hibernate.repository.impl.HibernateRepository.java

License:Apache License

@Override
public final <E> List<E> findAll(Order... orders) {
    if (ArrayTool.isEmpty(orders)) {
        Query query = getSession().createQuery("from " + entityClazz.getName());
        return (List<E>) query.setCacheable(cacheable).list();
    } else {/* ww  w .jav a  2 s . c  om*/
        Criteria criteria = getSession().createCriteria(entityClazz);
        HibernateTool.addOrders(criteria, orders);
        return criteria.setCacheable(cacheable).list();
    }
}

From source file:kr.debop4j.data.hibernate.repository.impl.HibernateRepository.java

License:Apache License

@Override
public final <E> List<E> findAll(int firstResult, int maxResults, Order... orders) {
    if (ArrayTool.isEmpty(orders)) {
        Query query = getSession().createQuery("from " + entityClazz.getName());
        HibernateTool.setPaging(query, firstResult, maxResults);

        return (List<E>) query.setCacheable(cacheable).list();
    } else {// w w  w .  ja  v a 2  s .  c  o m
        Criteria criteria = getSession().createCriteria(entityClazz);
        HibernateTool.setPaging(criteria, firstResult, maxResults);
        if (!ArrayTool.isEmpty(orders))
            HibernateTool.addOrders(criteria, orders);

        return criteria.setCacheable(cacheable).list();
    }
}

From source file:kr.debop4j.data.hibernate.repository.impl.HibernateRepository.java

License:Apache License

@Override
public final <E> List<E> find(Criteria criteria, Order... orders) {
    if (!ArrayTool.isEmpty(orders))
        HibernateTool.addOrders(criteria, orders);

    return criteria.setCacheable(cacheable).list();
}

From source file:kr.debop4j.data.hibernate.repository.impl.HibernateRepository.java

License:Apache License

@Override
public final <E> List<E> find(Criteria criteria, int firstResult, int maxResults, Order... orders) {
    HibernateTool.setPaging(criteria, firstResult, maxResults);
    if (!ArrayTool.isEmpty(orders))
        HibernateTool.addOrders(criteria, orders);
    return criteria.setCacheable(cacheable).list();
}

From source file:kr.debop4j.data.hibernate.repository.impl.HibernateRepository.java

License:Apache License

@Override
public <E> E findUnique(Criteria criteria) {
    return (E) criteria.setCacheable(cacheable).uniqueResult();
}

From source file:lucee.runtime.orm.hibernate.HibernateORMSession.java

License:Open Source License

private Object load(PageContext pc, String cfcName, Struct filter, Struct options, String order, boolean unique)
        throws PageException {
    Component cfc = data.getEngine().create(pc, this, cfcName, false);
    Key dsn = KeyImpl.init(ORMUtil.getDataSourceName(pc, cfc));
    Session sess = getSession(dsn);//ww w . j  av a2  s.  c o  m

    String name = HibernateCaster.getEntityName(cfc);
    ClassMetadata metaData = null;

    Object rtn;
    try {
        //trans.begin();

        Criteria criteria = sess.createCriteria(name);

        // filter
        if (filter != null && !filter.isEmpty()) {
            metaData = sess.getSessionFactory().getClassMetadata(name);
            Object value;
            Entry<Key, Object> entry;
            Iterator<Entry<Key, Object>> it = filter.entryIterator();
            String colName;
            while (it.hasNext()) {
                entry = it.next();
                colName = HibernateUtil.validateColumnName(metaData, CommonUtil.toString(entry.getKey()));
                Type type = HibernateUtil.getPropertyType(metaData, colName, null);
                value = entry.getValue();
                if (!(value instanceof Component))
                    value = HibernateCaster.toSQL(type, value, null);

                if (value != null)
                    criteria.add(Restrictions.eq(colName, value));
                else
                    criteria.add(Restrictions.isNull(colName));
            }
        }

        // options
        boolean ignoreCase = false;
        if (options != null && !options.isEmpty()) {
            // ignorecase
            Boolean ignorecase = CommonUtil.toBoolean(options.get("ignorecase", null), null);
            if (ignorecase != null)
                ignoreCase = ignorecase.booleanValue();

            // offset
            int offset = CommonUtil.toIntValue(options.get("offset", null), 0);
            if (offset > 0)
                criteria.setFirstResult(offset);

            // maxResults
            int max = CommonUtil.toIntValue(options.get("maxresults", null), -1);
            if (max > -1)
                criteria.setMaxResults(max);

            // cacheable
            Boolean cacheable = CommonUtil.toBoolean(options.get("cacheable", null), null);
            if (cacheable != null)
                criteria.setCacheable(cacheable.booleanValue());

            // MUST cacheName ?

            // maxResults
            int timeout = CommonUtil.toIntValue(options.get("timeout", null), -1);
            if (timeout > -1)
                criteria.setTimeout(timeout);
        }

        // order 
        if (!Util.isEmpty(order)) {
            if (metaData == null)
                metaData = sess.getSessionFactory().getClassMetadata(name);

            String[] arr = CommonUtil.toStringArray(order, ',');
            CommonUtil.trimItems(arr);
            String[] parts;
            String col;
            boolean isDesc;
            Order _order;
            //ColumnInfo ci;
            for (int i = 0; i < arr.length; i++) {
                parts = CommonUtil.toStringArray(arr[i], " \t\n\b\r");
                CommonUtil.trimItems(parts);
                col = parts[0];

                col = HibernateUtil.validateColumnName(metaData, col);
                isDesc = false;
                if (parts.length > 1) {
                    if (parts[1].equalsIgnoreCase("desc"))
                        isDesc = true;
                    else if (!parts[1].equalsIgnoreCase("asc")) {
                        throw ExceptionUtil.createException((ORMSession) null, null,
                                "invalid order direction defintion [" + parts[1] + "]",
                                "valid values are [asc, desc]");
                    }

                }
                _order = isDesc ? Order.desc(col) : Order.asc(col);
                if (ignoreCase)
                    _order.ignoreCase();

                criteria.addOrder(_order);

            }
        }

        // execute
        if (!unique) {
            rtn = HibernateCaster.toCFML(criteria.list());
        } else {
            rtn = HibernateCaster.toCFML(criteria.uniqueResult());
        }

    } catch (Throwable t) {
        throw CommonUtil.toPageException(t);
    }

    return rtn;
}