-
- All Superinterfaces:
Attachable
,AutoCloseable
,FieldLike
,Flow.Publisher<R>
,Iterable<R>
,org.reactivestreams.Publisher<R>
,Query
,QueryPart
,ResultQuery<R>
,Select<R>
,SelectFinalStep<R>
,SelectForUpdateStep<R>
,SelectLimitStep<R>
,SelectOptionStep<R>
,SelectUnionStep<R>
,Serializable
,Statement
,TableLike<R>
public interface SelectSeekStepN<R extends Record> extends SelectLimitStep<R>
This type is used for theSelect
's DSL API when selecting genericRecord
types.Example:
Its equivalent in jOOQ-- get all authors' first and last names, and the number -- of books they've written in German, if they have written -- more than five books in German in the last three years -- (from 2011), and sort those authors by last names -- limiting results to the second and third row SELECT T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME, COUNT(*) FROM T_AUTHOR JOIN T_BOOK ON T_AUTHOR.ID = T_BOOK.AUTHOR_ID WHERE T_BOOK.LANGUAGE = 'DE' AND T_BOOK.PUBLISHED > '2008-01-01' GROUP BY T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME HAVING COUNT(*) > 5 ORDER BY T_AUTHOR.LAST_NAME ASC NULLS FIRST LIMIT 2 OFFSET 1 FOR UPDATE OF FIRST_NAME, LAST_NAME NO WAIT
Refer to the manual for more detailscreate.select(TAuthor.FIRST_NAME, TAuthor.LAST_NAME, create.count()) .from(T_AUTHOR) .join(T_BOOK).on(TBook.AUTHOR_ID.equal(TAuthor.ID)) .where(TBook.LANGUAGE.equal("DE")) .and(TBook.PUBLISHED.greaterThan(parseDate('2008-01-01'))) .groupBy(TAuthor.FIRST_NAME, TAuthor.LAST_NAME) .having(create.count().greaterThan(5)) .orderBy(TAuthor.LAST_NAME.asc().nullsFirst()) .limit(2) .offset(1) .forUpdate() .of(TAuthor.FIRST_NAME, TAuthor.LAST_NAME) .noWait();
- Author:
- Lukas Eder
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description SelectSeekLimitStep<R>
seek(Object... values)
Add a syntheticSEEK AFTER
clause to the query.SelectSeekLimitStep<R>
seek(Field<?>... fields)
Add a syntheticSEEK AFTER
clause to the query.SelectSeekLimitStep<R>
seekAfter(Object... values)
Add a syntheticSEEK AFTER
clause to the query.SelectSeekLimitStep<R>
seekAfter(Field<?>... fields)
Add a syntheticSEEK AFTER
clause to the query.SelectSeekLimitStep<R>
seekBefore(Object... values)
Deprecated.- [#7461] - SEEK BEFORE is not implemented correctlySelectSeekLimitStep<R>
seekBefore(Field<?>... fields)
Deprecated.- [#7461] - SEEK BEFORE is not implemented correctly-
Methods inherited from interface org.jooq.Attachable
attach, configuration, detach
-
Methods inherited from interface java.util.concurrent.Flow.Publisher
subscribe
-
Methods inherited from interface org.jooq.Query
cancel, close, execute, executeAsync, executeAsync, getBindValues, getParam, getParams, getSQL, getSQL, getSQL, isExecutable
-
Methods inherited from interface org.jooq.ResultQuery
bind, bind, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, coerce, collect, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetch, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAny, fetchAnyArray, fetchAnyInto, fetchAnyInto, fetchAnyMap, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArray, fetchArrays, fetchAsync, fetchAsync, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchGroups, fetchInto, fetchInto, fetchInto, fetchLater, fetchLater, fetchLazy, fetchLazy, fetchMany, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMap, fetchMaps, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOne, fetchOneArray, fetchOneInto, fetchOneInto, fetchOneMap, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptional, fetchOptionalArray, fetchOptionalInto, fetchOptionalInto, fetchOptionalMap, fetchResultSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSet, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingle, fetchSingleArray, fetchSingleInto, fetchSingleInto, fetchSingleMap, fetchSize, fetchStream, fetchStreamInto, fetchStreamInto, forEach, getRecordType, getResult, intern, intern, intern, intern, iterator, keepStatement, maxRows, poolable, queryTimeout, resultSetConcurrency, resultSetHoldability, resultSetType, spliterator, stream
-
Methods inherited from interface org.jooq.Select
fetchCount, getSelect
-
Methods inherited from interface org.jooq.SelectFinalStep
getQuery
-
Methods inherited from interface org.jooq.SelectForUpdateStep
forKeyShare, forNoKeyUpdate, forShare, forUpdate, withCheckOption, withReadOnly
-
Methods inherited from interface org.jooq.SelectLimitStep
limit, limit, limit, limit, limit, limit, limit, limit, limit, limit, offset, offset, offset
-
Methods inherited from interface org.jooq.SelectOptionStep
option
-
Methods inherited from interface org.jooq.SelectUnionStep
except, exceptAll, intersect, intersectAll, union, unionAll
-
-
-
-
Method Detail
-
seek
SelectSeekLimitStep<R> seek(Object... values)
Add a syntheticSEEK AFTER
clause to the query.The synthetic
SEEK AFTER
clause is an alternative way to specify anOFFSET
, and thus to perform paging in a SQL query. This can be advantageous for two reasons:- The SQL generated from the
SEEK AFTER
clause is a regular predicate, which can be used by query plan optimisers to choose an appropriate index. The SQL standardOFFSET
clause will need to skipN
rows in memory. - The
SEEK AFTER
clause is stable with respect to new data being inserted or data being deleted while paging through pages.
Example:
DSL.using(configuration) .selectFrom(TABLE) .orderBy(ID, CODE) .seek(3, "abc") .fetch();
The above query will render the following SQL statement:
SELECT table.col1, table.col2, ... FROM table WHERE (id, code) > (3, 'abc') ORDER BY id ASC, code ASC
The actual row value expression predicate may be expanded into this equivalent predicate:
WHERE (id > 3) OR (id = 3 AND code > 'abc')
The
SEEK AFTER
method currently does not support seekingNULL
values, or operating withNULLS FIRST
,NULLS LAST
clauses in theORDER BY
clause. - The SQL generated from the
-
seek
SelectSeekLimitStep<R> seek(Field<?>... fields)
Add a syntheticSEEK AFTER
clause to the query.The synthetic
SEEK AFTER
clause is an alternative way to specify anOFFSET
, and thus to perform paging in a SQL query. This can be advantageous for two reasons:- The SQL generated from the
SEEK AFTER
clause is a regular predicate, which can be used by query plan optimisers to choose an appropriate index. The SQL standardOFFSET
clause will need to skipN
rows in memory. - The
SEEK AFTER
clause is stable with respect to new data being inserted or data being deleted while paging through pages.
Example:
DSL.using(configuration) .selectFrom(TABLE) .orderBy(ID, CODE) .seek(3, "abc") .fetch();
The above query will render the following SQL statement:
SELECT table.col1, table.col2, ... FROM table WHERE (id, code) > (3, 'abc') ORDER BY id ASC, code ASC
The actual row value expression predicate may be expanded into this equivalent predicate:
WHERE (id > 3) OR (id = 3 AND code > 'abc')
The
SEEK AFTER
method currently does not support seekingNULL
values, or operating withNULLS FIRST
,NULLS LAST
clauses in theORDER BY
clause. - The SQL generated from the
-
seekAfter
SelectSeekLimitStep<R> seekAfter(Object... values)
Add a syntheticSEEK AFTER
clause to the query.The synthetic
SEEK AFTER
clause is an alternative way to specify anOFFSET
, and thus to perform paging in a SQL query. This can be advantageous for two reasons:- The SQL generated from the
SEEK AFTER
clause is a regular predicate, which can be used by query plan optimisers to choose an appropriate index. The SQL standardOFFSET
clause will need to skipN
rows in memory. - The
SEEK AFTER
clause is stable with respect to new data being inserted or data being deleted while paging through pages.
Example:
DSL.using(configuration) .selectFrom(TABLE) .orderBy(ID, CODE) .seekAfter(3, "abc") .fetch();
The above query will render the following SQL statement:
SELECT table.col1, table.col2, ... FROM table WHERE (id, code) > (3, 'abc') ORDER BY id ASC, code ASC
The actual row value expression predicate may be expanded into this equivalent predicate:
WHERE (id > 3) OR (id = 3 AND code > 'abc')
The
SEEK AFTER
method currently does not support seekingNULL
values, or operating withNULLS FIRST
,NULLS LAST
clauses in theORDER BY
clause. - The SQL generated from the
-
seekAfter
SelectSeekLimitStep<R> seekAfter(Field<?>... fields)
Add a syntheticSEEK AFTER
clause to the query.The synthetic
SEEK AFTER
clause is an alternative way to specify anOFFSET
, and thus to perform paging in a SQL query. This can be advantageous for two reasons:- The SQL generated from the
SEEK AFTER
clause is a regular predicate, which can be used by query plan optimisers to choose an appropriate index. The SQL standardOFFSET
clause will need to skipN
rows in memory. - The
SEEK AFTER
clause is stable with respect to new data being inserted or data being deleted while paging through pages.
Example:
DSL.using(configuration) .selectFrom(TABLE) .orderBy(ID, CODE) .seekAfter(3, "abc") .fetch();
The above query will render the following SQL statement:
SELECT table.col1, table.col2, ... FROM table WHERE (id, code) > (3, 'abc') ORDER BY id ASC, code ASC
The actual row value expression predicate may be expanded into this equivalent predicate:
WHERE (id > 3) OR (id = 3 AND code > 'abc')
The
SEEK AFTER
method currently does not support seekingNULL
values, or operating withNULLS FIRST
,NULLS LAST
clauses in theORDER BY
clause. - The SQL generated from the
-
seekBefore
@Deprecated SelectSeekLimitStep<R> seekBefore(Object... values)
Deprecated.- [#7461] - SEEK BEFORE is not implemented correctlyAdd a syntheticSEEK BEFORE
clause to the query.The synthetic
SEEK BEFORE
clause is an alternative way to specify anOFFSET
, and thus to perform paging in a SQL query. This can be advantageous for two reasons:- The SQL generated from the
SEEK BEFORE
clause is a regular predicate, which can be used by query plan optimisers to choose an appropriate index. The SQL standardOFFSET
clause will need to skipN
rows in memory. - The
SEEK BEFORE
clause is stable with respect to new data being inserted or data being deleted while paging through pages.
Example:
DSL.using(configuration) .selectFrom(TABLE) .orderBy(ID, CODE) .seekBefore(3, "abc") .fetch();
The above query will render the following SQL statement:
SELECT table.col1, table.col2, ... FROM table WHERE (id, code) < (3, 'abc') ORDER BY id ASC, code ASC
The actual row value expression predicate may be expanded into this equivalent predicate:
WHERE (id < 3) OR (id = 3 AND code < 'abc')
The
SEEK BEFORE
method currently does not support seekingNULL
values, or operating withNULLS FIRST
,NULLS LAST
clauses in theORDER BY
clause. - The SQL generated from the
-
seekBefore
@Deprecated SelectSeekLimitStep<R> seekBefore(Field<?>... fields)
Deprecated.- [#7461] - SEEK BEFORE is not implemented correctlyAdd a syntheticSEEK BEFORE
clause to the query.The synthetic
SEEK BEFORE
clause is an alternative way to specify anOFFSET
, and thus to perform paging in a SQL query. This can be advantageous for two reasons:- The SQL generated from the
SEEK BEFORE
clause is a regular predicate, which can be used by query plan optimisers to choose an appropriate index. The SQL standardOFFSET
clause will need to skipN
rows in memory. - The
SEEK BEFORE
clause is stable with respect to new data being inserted or data being deleted while paging through pages.
Example:
DSL.using(configuration) .selectFrom(TABLE) .orderBy(ID, CODE) .seekBefore(3, "abc") .fetch();
The above query will render the following SQL statement:
SELECT table.col1, table.col2, ... FROM table WHERE (id, code) < (3, 'abc') ORDER BY id ASC, code ASC
The actual row value expression predicate may be expanded into this equivalent predicate:
WHERE (id < 3) OR (id = 3 AND code < 'abc')
The
SEEK BEFORE
method currently does not support seekingNULL
values, or operating withNULLS FIRST
,NULLS LAST
clauses in theORDER BY
clause. - The SQL generated from the
-
-