List of usage examples for org.hibernate.loader.criteria CriteriaQueryTranslator getCriteria
public Criteria getCriteria(String path)
From source file:org.iternine.jeppetto.dao.hibernate.HibernateQueryModelDAO.java
License:Apache License
private void buildSelectClause(StringBuilder queryStringBuilder, CriteriaQueryTranslator criteriaQueryTranslator, Set<String> associationPaths) { // "distinct" is needed only for association criteria, but it prevents specifying ordering by "ace.id" if (associationPaths.isEmpty()) { queryStringBuilder.append("select "); } else {/*w ww .j ava 2 s.co m*/ queryStringBuilder.append("select distinct "); } queryStringBuilder.append(criteriaQueryTranslator.getRootSQLALias()); queryStringBuilder.append(" from AccessControlEntry ace, "); queryStringBuilder.append(persistentClass.getSimpleName()); queryStringBuilder.append(' '); queryStringBuilder.append(criteriaQueryTranslator.getRootSQLALias()); for (String associationPath : associationPaths) { queryStringBuilder.append(" join "); queryStringBuilder.append(criteriaQueryTranslator.getRootSQLALias()); queryStringBuilder.append('.'); queryStringBuilder.append(associationPath); queryStringBuilder.append(" as "); queryStringBuilder.append( criteriaQueryTranslator.getSQLAlias(criteriaQueryTranslator.getCriteria(associationPath))); } }
From source file:org.iternine.jeppetto.dao.hibernate.HibernateQueryModelDAO.java
License:Apache License
private List<TypedValue> buildWhereClause(StringBuilder queryStringBuilder, QueryModel queryModel, Criteria criteria, CriteriaQueryTranslator criteriaQueryTranslator) { List<TypedValue> parameters = new ArrayList<TypedValue>(); queryStringBuilder.append(" where "); if (queryModel.getConditions() != null) { for (Condition condition : queryModel.getConditions()) { Criterion criterion = (Criterion) condition.getConstraint(); queryStringBuilder.append(criterion.toSqlString(criteria, criteriaQueryTranslator)); queryStringBuilder.append(" and "); parameters.addAll(Arrays.asList(criterion.getTypedValues(criteria, criteriaQueryTranslator))); }/*w w w .j a v a2 s . c o m*/ } if (queryModel.getAssociationConditions() != null) { for (Map.Entry<String, List<Condition>> associationCriteriaEntry : queryModel.getAssociationConditions() .entrySet()) { CriteriaImpl.Subcriteria associationCriteria = (CriteriaImpl.Subcriteria) criteriaQueryTranslator .getCriteria(associationCriteriaEntry.getKey()); for (Condition condition : associationCriteriaEntry.getValue()) { Criterion criterion = (Criterion) condition.getConstraint(); queryStringBuilder.append(criterion.toSqlString(associationCriteria, criteriaQueryTranslator)); queryStringBuilder.append(" and "); parameters.addAll( Arrays.asList(criterion.getTypedValues(associationCriteria, criteriaQueryTranslator))); } } } queryStringBuilder.append(" ace.objectType = '"); queryStringBuilder.append(persistentClass.getSimpleName()); queryStringBuilder.append("' and ace.objectId = "); queryStringBuilder.append(criteriaQueryTranslator.getRootSQLALias()); queryStringBuilder.append('.'); queryStringBuilder.append(idField); queryStringBuilder.append(" and ace.accessibleBy = ? "); return parameters; }