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:com.zhima.base.dao.BaseDao.java

License:Open Source License

/**
 * /*from w  w w . j  a  v a2s  . c om*/
 * 
 * @param detachedCriteria
 * @param resultTransformer
 * @return
 */
@Transactional(readOnly = true)
@SuppressWarnings("unchecked")
public List<T> find(DetachedCriteria detachedCriteria, ResultTransformer resultTransformer) {
    Criteria criteria = detachedCriteria.getExecutableCriteria(getSession());
    criteria.setResultTransformer(resultTransformer);
    return criteria.list();
}

From source file:com.zhima.base.dao.BaseDao.java

License:Open Source License

/**
 * //  w w w .  j a v a  2s. c om
 * 
 * @param detachedCriteria
 * @return
 */
@Transactional(readOnly = true)
@SuppressWarnings("rawtypes")
public long count(DetachedCriteria detachedCriteria) {
    Criteria criteria = detachedCriteria.getExecutableCriteria(getSession());
    long totalCount = 0;
    try {
        // Get orders
        Field field = CriteriaImpl.class.getDeclaredField("orderEntries");
        field.setAccessible(true);
        List orderEntrys = (List) field.get(criteria);
        // Remove orders
        field.set(criteria, new ArrayList());
        // Get count
        criteria.setProjection(Projections.rowCount());
        totalCount = Long.valueOf(criteria.uniqueResult().toString());
        // Clean count
        criteria.setProjection(null);
        // Restore orders
        field.set(criteria, orderEntrys);
    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }
    return totalCount;
}

From source file:de.hotware.hibernate.query.intelligent.searcher.SearcherImpl.java

License:Open Source License

@Override
public SearchResult search(U queryBean, FullTextSession fullTextSession, String profile) {
    fullTextSession.setFlushMode(FlushMode.MANUAL);
    SearchFactory searchFactory = fullTextSession.getSearchFactory();

    QueryBuilder queryBuilder;/*  ww  w.ja  va2 s  .co m*/
    {
        QueryContextBuilder queryContextBuilder = searchFactory.buildQueryBuilder();
        EntityContext entityContext = queryContextBuilder.forEntity(this.indexedClass);
        queryBuilder = entityContext.get();
    }

    @SuppressWarnings("rawtypes")
    BooleanJunction<BooleanJunction> mainJunction = queryBuilder.bool();

    Query hierarchicalQuery = this.hierarchies.get(profile);
    if (hierarchicalQuery == null) {
        throw new IllegalArgumentException("profile " + profile + " not available!");
    }
    hierarchicalQuery.constructQuery(mainJunction, queryBuilder, queryBean, cachedInfo, searchFactory);

    // apply the custom query
    mainJunction = queryBean.customQuery(mainJunction, queryBuilder);
    final FullTextQuery query = fullTextSession.createFullTextQuery(mainJunction.createQuery(),
            this.indexedClass);

    // apply the filters
    if (queryBean.getFilters() != null) {
        for (String filter : queryBean.getFilters()) {
            FullTextFilter fullTextFilter = query.enableFullTextFilter(filter);
            Set<QueryBean.FilterParameter> filterParameters = queryBean.getFilterParameters().get(filter);
            if (filterParameters != null) {
                for (QueryBean.FilterParameter parameter : filterParameters) {
                    fullTextFilter.setParameter(parameter.key, parameter.value);
                }
            }
        }
    }

    // apply the custom sort (if available)
    if (queryBean.getSort() != null) {
        query.setSort(queryBean.getSort());
    }

    {
        DetachedCriteria criteria = queryBean.getCriteriaForFetchModes();
        if (criteria != null) {
            query.setCriteriaQuery(criteria.getExecutableCriteria(fullTextSession));
        }
    }

    // faceting
    final Map<String, FacetingRequest> faceting = queryBean.getFaceting(queryBuilder);
    final Map<String, List<Facet>> facets = new HashMap<>();
    if (faceting != null) {
        FacetManager facetManager = query.getFacetManager();
        for (FacetingRequest request : faceting.values()) {
            facetManager.enableFaceting(request);
        }
        for (String name : faceting.keySet()) {
            facets.put(name, facetManager.getFacets(name));
        }
    }
    return new SearchResult() {

        @Override
        public FullTextQuery getFullTextQuery() {
            return query;
        }

        @Override
        public Map<String, List<Facet>> getFacets() {
            return facets;
        }

    };
}

From source file:debop4k.data.orm.hibernate.CriteriaEx.java

License:Apache License

public static Criteria getExecutableCriteria(Session session, DetachedCriteria dc) {
    return dc.getExecutableCriteria(session);
}

From source file:debop4k.data.orm.hibernate.dao.HibernateAsyncDao.java

License:Apache License

/**
 * ? ? Criteria#uniqueResult  ./*from www  . ja v  a  2s . c om*/
 */
public <T> Promise<T, Exception> uniqueResultAsync(@NonNull final DetachedCriteria dc) {

    return Asyncx.future(new Callable<T>() {
        @Override
        public T call() throws Exception {
            Session sess = getSf().openSession();
            try {
                return (T) dc.getExecutableCriteria(sess).uniqueResult();
            } finally {
                sess.close();
            }
        }
    });
}

From source file:debop4k.data.orm.hibernate.dao.HibernateDao.java

License:Apache License

public ScrollableResults scroll(@NonNull DetachedCriteria dc) {
    return dc.getExecutableCriteria(session()).scroll();
}

From source file:debop4k.data.orm.hibernate.dao.HibernateDao.java

License:Apache License

public ScrollableResults scroll(@NonNull DetachedCriteria dc, ScrollMode scrollMode) {
    return dc.getExecutableCriteria(session()).scroll(scrollMode);
}

From source file:debop4k.data.orm.hibernate.dao.HibernateDao.java

License:Apache License

public List find(@NonNull DetachedCriteria dc, Order... orders) {
    return find(dc.getExecutableCriteria(session()), orders);
}

From source file:debop4k.data.orm.hibernate.dao.HibernateDao.java

License:Apache License

public List find(@NonNull DetachedCriteria dc, Pageable pageable) {
    return find(dc.getExecutableCriteria(session()), pageable);
}

From source file:debop4k.data.orm.hibernate.dao.HibernateDao.java

License:Apache License

public List find(@NonNull DetachedCriteria dc, int firstResult, int maxResults, Order... orders) {
    return find(dc.getExecutableCriteria(session()), firstResult, maxResults, orders);
}