Methods in org.rhq.core.domain.util with parameters of type PageControl |
static String |
PersistenceUtility.addH2NativePagingSortingToQuery(String query,
PageControl pageControl)
|
static String |
PersistenceUtility.addOracleNativePagingSortingToQuery(String query,
PageControl pageControl)
|
static String |
PersistenceUtility.addPostgresNativePagingSortingToQuery(String query,
PageControl pageControl)
|
static String |
PersistenceUtility.addSQLServerNativePagingSortingToQuery(String query,
PageControl pageControl)
Note: always put the rownum column at the END of the columns, so that code
which relies on index-based access to the result set data doesn't break
Method 1:
SELECT outerResults.* FROM (
SELECT innerResults.*,
ROW_NUMBER() OVER( {orderByClause} ) AS rownum
FROM ( {queryWithoutOrderBy} ) AS innerResults
) AS outerResults
WHERE rownum <= maxRowNum AND rownum >= minRowNum
The above method fails in circumstances where the orderByClause is built up with
aliases that aren't in the explicit select list returned from queryWithoutOrderBy
Method 2:
Fix above shortcomings by pushing the orderByClause into the actual select list
SELECT singleResults.* FROM (
{queryWithoutOrderBySelectList}
, ROW_NUMBER() OVER( {orderByClause} ) AS rownum
{queryWithoutOrderByRestOfQuery}
) AS singleResults
WHERE rownum <= maxRowNum AND rownum >= minRowNum
Actually, both of the above methods have small flaws. |
static String |
PersistenceUtility.addSQLServerNativePagingSortingToQuery(String query,
PageControl pageControl,
boolean alternatePagingStyle)
|
static javax.persistence.Query |
PersistenceUtility.createNonNamedQueryWithOrderBy(javax.persistence.EntityManager entityManager,
String queryText,
PageControl pageControl)
|
static PageList |
PersistenceUtility.createPaginationFilter(javax.persistence.EntityManager entityManager,
Collection collection,
PageControl pageControl)
Creates and executes a filter query for a collection relationship. |
static javax.persistence.Query |
PersistenceUtility.createQueryWithOrderBy(javax.persistence.EntityManager entityManager,
String queryName,
PageControl pageControl)
Used to create queries to use with the PageControl objects. |
static void |
PersistenceUtility.setDataPage(javax.persistence.Query query,
PageControl pageControl)
|
void |
PageList.setPageControl(PageControl pageControl)
|