/** * Used to create queries to use with the {@link org.rhq.core.domain.util.PageControl} objects. The query will already have its sort column * and order appended as well as having its first result and max results set according to the page control data. * * @param entityManager your entity manager * @param queryName name of the query * @param pageControl the controls on the paging and sorting * * @return a preconfigured query for ordered pagination */ public static Query createQueryWithOrderBy(EntityManager entityManager, String queryName, PageControl pageControl) { Query query; if (pageControl.getPrimarySortColumn() != null) { query = createQueryWithOrderBy(entityManager, queryName, pageControl.getOrderingFieldsAsArray()); } else { StackTraceElement caller = new Throwable().fillInStackTrace().getStackTrace()[1]; LOG.warn("Queries should really supply default sort columns. Caller did not: " + caller); // Use the standard named query if no sorting is specified query = entityManager.createNamedQuery(queryName); } setDataPage(query, pageControl); return query; }
if (pageControl.getPrimarySortColumn() != null) { PageOrdering order = (pageControl.getPrimarySortOrder() == null) ? PageOrdering.ASC : pageControl .getPrimarySortOrder(); filter = getOrderByFragment(new OrderingField(pageControl.getPrimarySortColumn(), order));