public static ProjectionList projectionSupport(Criteria criteria,
ProjectionList projectionList) throws Exception {
ProjectionList newProjectionList = Projections.projectionList();
Map<String, String> aliasesToCreate = new HashMap<String, String>();
for (int i = 0; i < projectionList.getLength(); i++) {
Projection projection = projectionList.getProjection(i);
String projectionString = projection.toString();
if (projectionString.indexOf(".") != -1) {
String[] splitedString = projectionString.split("\\.");
createAlias(criteria, splitedString);
newProjectionList.add(Projections.property(splitedString[splitedString.length-2]+"."+splitedString[splitedString.length-1]));
} else {