List of usage examples for org.hibernate.loader.criteria CriteriaQueryTranslator getQueryParameters
public QueryParameters getQueryParameters()
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; }