Class SqlPagingQueryUtils
- java.lang.Object
- org.springframework.batch.item.database.support.SqlPagingQueryUtils
public class SqlPagingQueryUtils extends java.lang.ObjectUtility class that generates the actual SQL statements used by query providers.- Since:
- 2.0
- Author:
- Thomas Risberg, Dave Syer, Michael Minella
Constructor Summary
Constructors Constructor Description SqlPagingQueryUtils()
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.StringbuildSortClause(java.util.Map<java.lang.String,Order> sortKeys)Generates ORDER BY attributes based on the sort keys.static java.lang.StringbuildSortClause(AbstractSqlPagingQueryProvider provider)Generates ORDER BY attributes based on the sort keys.static voidbuildSortConditions(AbstractSqlPagingQueryProvider provider, java.lang.StringBuilder sql)Appends the where conditions required to query for the subsequent pages.static java.lang.StringgenerateGroupedTopSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, java.lang.String topClause)Generate SQL query string using a TOP clausestatic java.lang.StringgenerateLimitGroupedSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, java.lang.String limitClause)Generate SQL query string using a LIMIT clausestatic java.lang.StringgenerateLimitJumpToQuery(AbstractSqlPagingQueryProvider provider, java.lang.String limitClause)Generate SQL query string using a LIMIT clausestatic java.lang.StringgenerateLimitSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, java.lang.String limitClause)Generate SQL query string using a LIMIT clausestatic java.lang.StringgenerateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, java.lang.String rowNumClause)Generate SQL query string using a ROW_NUM conditionstatic java.lang.StringgenerateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider, java.lang.String selectClause, boolean remainingPageQuery, java.lang.String rowNumClause)Generate SQL query string using a ROW_NUM conditionstatic java.lang.StringgenerateRowNumSqlQueryWithNesting(AbstractSqlPagingQueryProvider provider, java.lang.String selectClause, boolean remainingPageQuery, java.lang.String rowNumClause)static java.lang.StringgenerateRowNumSqlQueryWithNesting(AbstractSqlPagingQueryProvider provider, java.lang.String innerSelectClause, java.lang.String outerSelectClause, boolean remainingPageQuery, java.lang.String rowNumClause)static java.lang.StringgenerateTopJumpToQuery(AbstractSqlPagingQueryProvider provider, java.lang.String topClause)Generate SQL query string using a TOP clausestatic java.lang.StringgenerateTopSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, java.lang.String topClause)Generate SQL query string using a TOP clause
Method Detail
generateLimitSqlQuery
public static java.lang.String generateLimitSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, java.lang.String limitClause)
Generate SQL query string using a LIMIT clause- Parameters:
provider-AbstractSqlPagingQueryProviderproviding the implementation specificsremainingPageQuery- is this query for the remaining pages (true) as opposed to the first page (false)limitClause- the implementation specific limit clause to be used- Returns:
- the generated query
generateLimitGroupedSqlQuery
public static java.lang.String generateLimitGroupedSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, java.lang.String limitClause)
Generate SQL query string using a LIMIT clause- Parameters:
provider-AbstractSqlPagingQueryProviderproviding the implementation specificsremainingPageQuery- is this query for the remaining pages (true) as opposed to the first page (false)limitClause- the implementation specific limit clause to be used- Returns:
- the generated query
generateTopSqlQuery
public static java.lang.String generateTopSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, java.lang.String topClause)
Generate SQL query string using a TOP clause- Parameters:
provider-AbstractSqlPagingQueryProviderproviding the implementation specificsremainingPageQuery- is this query for the remaining pages (true) as opposed to the first page (false)topClause- the implementation specific top clause to be used- Returns:
- the generated query
generateGroupedTopSqlQuery
public static java.lang.String generateGroupedTopSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, java.lang.String topClause)
Generate SQL query string using a TOP clause- Parameters:
provider-AbstractSqlPagingQueryProviderproviding the implementation specificsremainingPageQuery- is this query for the remaining pages (true) as opposed to the first page (false)topClause- the implementation specific top clause to be used- Returns:
- the generated query
generateRowNumSqlQuery
public static java.lang.String generateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, java.lang.String rowNumClause)
Generate SQL query string using a ROW_NUM condition- Parameters:
provider-AbstractSqlPagingQueryProviderproviding the implementation specificsremainingPageQuery- is this query for the remaining pages (true) as opposed to the first page (false)rowNumClause- the implementation specific row num clause to be used- Returns:
- the generated query
generateRowNumSqlQuery
public static java.lang.String generateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider, java.lang.String selectClause, boolean remainingPageQuery, java.lang.String rowNumClause)
Generate SQL query string using a ROW_NUM condition- Parameters:
provider-AbstractSqlPagingQueryProviderproviding the implementation specificsselectClause-Stringcontaining the select portion of the query.remainingPageQuery- is this query for the remaining pages (true) as opposed to the first page (false)rowNumClause- the implementation specific row num clause to be used- Returns:
- the generated query
generateRowNumSqlQueryWithNesting
public static java.lang.String generateRowNumSqlQueryWithNesting(AbstractSqlPagingQueryProvider provider, java.lang.String selectClause, boolean remainingPageQuery, java.lang.String rowNumClause)
generateRowNumSqlQueryWithNesting
public static java.lang.String generateRowNumSqlQueryWithNesting(AbstractSqlPagingQueryProvider provider, java.lang.String innerSelectClause, java.lang.String outerSelectClause, boolean remainingPageQuery, java.lang.String rowNumClause)
generateLimitJumpToQuery
public static java.lang.String generateLimitJumpToQuery(AbstractSqlPagingQueryProvider provider, java.lang.String limitClause)
Generate SQL query string using a LIMIT clause- Parameters:
provider-AbstractSqlPagingQueryProviderproviding the implementation specificslimitClause- the implementation specific top clause to be used- Returns:
- the generated query
generateTopJumpToQuery
public static java.lang.String generateTopJumpToQuery(AbstractSqlPagingQueryProvider provider, java.lang.String topClause)
Generate SQL query string using a TOP clause- Parameters:
provider-AbstractSqlPagingQueryProviderproviding the implementation specificstopClause- the implementation specific top clause to be used- Returns:
- the generated query
buildSortClause
public static java.lang.String buildSortClause(AbstractSqlPagingQueryProvider provider)
Generates ORDER BY attributes based on the sort keys.- Parameters:
provider- theAbstractSqlPagingQueryProviderto be used for used for pagination.- Returns:
- a String that can be appended to an ORDER BY clause.
buildSortClause
public static java.lang.String buildSortClause(java.util.Map<java.lang.String,Order> sortKeys)
Generates ORDER BY attributes based on the sort keys.- Parameters:
sortKeys-Mapwhere the key is the name of the column to be sorted and the value contains theOrder.- Returns:
- a String that can be appended to an ORDER BY clause.
buildSortConditions
public static void buildSortConditions(AbstractSqlPagingQueryProvider provider, java.lang.StringBuilder sql)
Appends the where conditions required to query for the subsequent pages.- Parameters:
provider- theAbstractSqlPagingQueryProviderto be used for pagination.sql-StringBuildercontaining the sql to be used for the query.