Class SqlPagingQueryUtils
java.lang.Object
org.springframework.batch.item.database.support.SqlPagingQueryUtils
Utility class that generates the actual SQL statements used by query providers.
- Since:
- 2.0
- Author:
- Thomas Risberg, Dave Syer, Michael Minella, Mahmoud Ben Hassine, Taeik Lim
-
Method Summary
Modifier and TypeMethodDescriptionstatic StringbuildSortClause(Map<String, Order> sortKeys) Generates ORDER BY attributes based on the sort keys.static StringGenerates ORDER BY attributes based on the sort keys.static voidbuildSortConditions(AbstractSqlPagingQueryProvider provider, StringBuilder sql) Appends the where conditions required to query for the subsequent pages.static StringgenerateGroupedTopSqlQuery(AbstractSqlPagingQueryProvider provider, String topClause) Generate SQL query string using a TOP clausestatic StringgenerateLimitGroupedSqlQuery(AbstractSqlPagingQueryProvider provider, String limitClause) Generate SQL query string using a LIMIT clausestatic StringgenerateLimitSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, String limitClause) Generate SQL query string using a LIMIT clausestatic StringgenerateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, String rowNumClause) Generate SQL query string using a ROW_NUM conditionstatic StringgenerateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider, @Nullable String selectClause, boolean remainingPageQuery, String rowNumClause) Generate SQL query string using a ROW_NUM conditionstatic StringgenerateTopSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, String topClause) Generate SQL query string using a TOP clause
-
Method Details
-
generateLimitSqlQuery
public static String generateLimitSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, 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 String generateLimitGroupedSqlQuery(AbstractSqlPagingQueryProvider provider, String limitClause) Generate SQL query string using a LIMIT clause- Parameters:
provider-AbstractSqlPagingQueryProviderproviding the implementation specificslimitClause- the implementation specific limit clause to be used- Returns:
- the generated query
-
generateTopSqlQuery
public static String generateTopSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, 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 String generateGroupedTopSqlQuery(AbstractSqlPagingQueryProvider provider, 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
- Since:
- 5.2
-
generateRowNumSqlQuery
public static String generateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, 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 String generateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider, @Nullable String selectClause, boolean remainingPageQuery, 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
-
buildSortClause
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
Generates ORDER BY attributes based on the sort keys. -
buildSortConditions
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.
-