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

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

Introduction

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

Prototype

@Override
    public String getSQLAlias(Criteria criteria) 

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 ww. ja v a 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)));
    }
}