}
Query query;
String queryString = "";
boolean filterExists = filter != null && filter.isEnabled();
if (filterExists) {
QueryBuilder queryBuilder = SqlUtils.getQueryBuilder(filter);
String ejbFragment = queryBuilder.toEjbQl();
boolean formatCriteriaExist = ejbFragment.contains("format.");
String sqlFilter = SqlUtils.transformEJBtoSQLFields(ejbFragment, "profile", "form");
queryString = formatCriteriaExist ? "select distinct profile.* " : "select profile.* ";
queryString += "from profile_resource_node as profile ";
if (formatCriteriaExist) {
queryString += "inner join identification as ident on ident.node_id = profile.node_id"
+ " inner join format as form on form.puid = ident.puid ";
}
queryString += "where " + sqlFilter;
query = session.createSQLQuery(queryString).addEntity(ProfileResourceNode.class);
int i = 0;
for (Object value : queryBuilder.getValues()) {
Object value2 = SqlUtils.transformParameterToSQLValue(value);
query.setParameter(i++, value2);
}
} else {
queryString = "select * from profile_resource_node";