Class<?> projectableResultClass; try { projectableResultClass = Class.forName(requestedPage.getProjectableResult()); } catch (ClassNotFoundException e) { throw new RuntimeException("Unable to recreate class with string " + requestedPage.getProjectableResult() + " for projectables.");
/** * @param requestedPage * @param criteria * @param existingAliases */ private void enrichCriteriaWithProjectables(Page requestedPage, Criteria criteria, Set<String> existingAliases) { if (requestedPage.getProjectables() == null) { return; } final ProjectionList list = Projections.projectionList(); Class<?> projectableResultClass; try { projectableResultClass = Class.forName(requestedPage.getProjectableResult()); } catch (ClassNotFoundException e) { throw new RuntimeException("Unable to recreate class with string " + requestedPage.getProjectableResult() + " for projectables."); } String[] directFields = createAliasesForProjectables(list, criteria, enhanceProjectablesWithEmbeddables(requestedPage.getProjectables(), projectableResultClass), existingAliases); criteria.setProjection(list).setResultTransformer( new ChainedFieldsTransformer(projectableResultClass, directFields)); }