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

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

Introduction

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

Prototype

public String getRootSQLALias() 

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 {/*from   w  w w  .  j a  va 2s  . c  o 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)));
        }/*from  w  w w. j a  v  a2  s . c om*/
    }

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