List of usage examples for org.hibernate.loader.criteria CriteriaQueryTranslator getWhereCondition
public String getWhereCondition()
From source file:corner.orm.tapestry.table.RelativePersistentBasicTableModel.java
License:Apache License
private Query createQuery(Session session, Collection c, String selectStr, String orderStr) { //TODO ?//from w ww . j av a 2 s .c om 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; }