Example usage for org.hibernate.loader.criteria CriteriaQueryTranslator getQueryParameters

List of usage examples for org.hibernate.loader.criteria CriteriaQueryTranslator getQueryParameters

Introduction

In this page you can find the example usage for org.hibernate.loader.criteria CriteriaQueryTranslator getQueryParameters.

Prototype

public QueryParameters getQueryParameters() 

Source Link

Usage

From source file:com.qcadoo.model.internal.HibernateServiceImpl.java

License:Open Source License

@Override
public int getTotalNumberOfEntities(final Criteria criteria) {
    final CriteriaImpl criteriaImpl = (CriteriaImpl) criteria;
    final SessionImplementor session = (SessionImplementor) getCurrentSession();
    SessionFactoryImplementor factory = session.getFactory();
    CriteriaQueryTranslator translator = new CriteriaQueryTranslator(factory, criteriaImpl,
            criteriaImpl.getEntityOrClassName(), CriteriaQueryTranslator.ROOT_SQL_ALIAS);
    String[] implementors = factory.getImplementors(criteriaImpl.getEntityOrClassName());

    CriteriaJoinWalker walker = new CriteriaJoinWalker(
            (OuterJoinLoadable) factory.getEntityPersister(implementors[0]), translator, factory, criteriaImpl,
            criteriaImpl.getEntityOrClassName(), session.getLoadQueryInfluencers());

    final String sql = "select count(*) as cnt from (" + walker.getSQLString() + ") sq";

    getCurrentSession().flush(); // is this safe?

    return ((Number) getCurrentSession().createSQLQuery(sql)
            .setParameters(translator.getQueryParameters().getPositionalParameterValues(),
                    translator.getQueryParameters().getPositionalParameterTypes())
            .uniqueResult()).intValue();
}

From source file:corner.orm.tapestry.table.RelativePersistentBasicTableModel.java

License:Apache License

private Query createQuery(Session session, Collection c, String selectStr, String orderStr) {
    //TODO ?//w ww . j av a2 s.  co m

    StringBuffer sb = new StringBuffer();
    if (selectStr != null) {
        sb.append(selectStr).append(" ");
    }

    Query query;
    if (callback != null) {
        //========  Example?.
        Criteria criteria = callback.createCriteria(session);

        //?
        callback.appendCriteria(criteria);
        String rootEntityName = ((CriteriaImpl) criteria).getEntityOrClassName();
        CriteriaQueryTranslator criteriaQuery = new CriteriaQueryTranslator(
                (SessionFactoryImplementor) session.getSessionFactory(), (CriteriaImpl) criteria,
                rootEntityName, Criteria.ROOT_ALIAS);
        String where = criteriaQuery.getWhereCondition();
        QueryParameters qps = criteriaQuery.getQueryParameters();

        //Criteria??where??
        if (where != null && where.length() > 0) {
            sb.append("where ").append(where).append(" ");
        }
        if (orderStr != null) {
            sb.append(orderStr);
        }
        query = session.createFilter(c, sb.toString()).setParameters(qps.getPositionalParameterValues(),
                qps.getPositionalParameterTypes());
    } else {
        if (orderStr != null) {
            sb.append(orderStr);
        }
        query = session.createFilter(c, sb.toString());

    }

    return query;

}