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

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

Introduction

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

Prototype

public Criteria getCriteria(String path) 

Source Link

Usage

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;
}