Select's DSL API when selecting generic
Record types.
Example:
-- 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
Its equivalent in jOOQ
create.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();
Refer to the manual for more details
XYZ*Step types directly from client code
It is usually not recommended to reference any XYZ*Step types
directly from client code, or assign them to local variables. When writing
dynamic SQL, creating a statement's components dynamically, and passing them
to the DSL API statically is usually a better choice. See the manual's
section about dynamic SQL for details: https://www.jooq.org/doc/latest/manual/sql-building/dynamic-sql.
Drawbacks of referencing the XYZ*Step types directly:
| Modifier and Type | Method and Description |
|---|---|
| public @NotNull BetweenAndStep | |
| public @NotNull Condition | |
| public @NotNull BetweenAndStep | |
| public @NotNull Condition | |
| public @NotNull BetweenAndStepR | |
| public @NotNull Condition | betweenSymmetric(R minValue, R maxValue)
Deprecated
as a consequence of
Check if this subquery is within a symmetric range of two records.
Condition being deprecated.
|
| public @NotNull BetweenAndStepR | betweenSymmetric(Select<? extends R> minValue)
Check if this subquery is within a symmetric range of two subqueries. |
| public @NotNull Condition | betweenSymmetric(Select<? extends R> minValue, Select<? extends R> maxValue)
Deprecated
as a consequence of
Check if this subquery is within a symmetric range of two subqueries.
Condition being deprecated.
|
| public @NotNull Condition | compare(Comparator comparator, R record)
Deprecated
as a consequence of
Compare this subquery with a record using a dynamic comparator.
Condition being deprecated.
|
| public @NotNull Condition | compare(Comparator comparator, Select<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a subquery using a dynamic comparator.
Condition being deprecated.
|
| public @NotNull Condition | compare(Comparator comparator, QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quantified subquery using a dynamic
comparator.
Condition being deprecated.
|
| public @NotNull Condition | |
| public @NotNull Condition | |
| public @NotNull Condition | eq(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quanitified subquery for equality.
Condition being deprecated.
|
| public @NotNull Condition | |
| public @NotNull Condition | |
| public @NotNull Condition | equal(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quanitified subquery for equality.
Condition being deprecated.
|
| public @NotNull Condition | |
| public @NotNull Condition | |
| public @NotNull Condition | ge(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quanitified subquery for order.
Condition being deprecated.
|
| public @NotNull Condition | greaterOrEqual(R record)
Deprecated
as a consequence of
Compare this subquery with a record for order.
Condition being deprecated.
|
| public @NotNull Condition | greaterOrEqual(Select<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with another record for order.
Condition being deprecated.
|
| public @NotNull Condition | greaterOrEqual(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quanitified subquery for order.
Condition being deprecated.
|
| public @NotNull Condition | greaterThan(R record)
Deprecated
as a consequence of
Compare this subquery with a record for order.
Condition being deprecated.
|
| public @NotNull Condition | greaterThan(Select<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with another record for order.
Condition being deprecated.
|
| public @NotNull Condition | greaterThan(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quanitified subquery for order.
Condition being deprecated.
|
| public @NotNull Condition | |
| public @NotNull Condition | |
| public @NotNull Condition | gt(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quanitified subquery for order.
Condition being deprecated.
|
| public @NotNull Condition | |
| public @NotNull Condition | |
| public @NotNull Condition | isDistinctFrom(R record)
Deprecated
as a consequence of
Compare this subquery with another record for distinctness.
Condition being deprecated.
|
| public @NotNull Condition | isDistinctFrom(Select<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with another record for distinctness.
Condition being deprecated.
|
| public @NotNull Condition | isDistinctFrom(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with another record for distinctness.
Condition being deprecated.
|
| public @NotNull Condition | isNotDistinctFrom(R record)
Deprecated
as a consequence of
Compare this subquery with another record for distinctness.
Condition being deprecated.
|
| public @NotNull Condition | isNotDistinctFrom(Select<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with another record for distinctness.
Condition being deprecated.
|
| public @NotNull Condition | isNotDistinctFrom(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with another record for distinctness.
Condition being deprecated.
|
| public @NotNull Condition | |
| public @NotNull Condition | |
| public @NotNull Condition | |
| public @NotNull Condition | |
| public @NotNull Condition | le(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quanitified subquery for order.
Condition being deprecated.
|
| public @NotNull Condition | lessOrEqual(R record)
Deprecated
as a consequence of
Compare this subquery with a record for order.
Condition being deprecated.
|
| public @NotNull Condition | lessOrEqual(Select<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with another record for order.
Condition being deprecated.
|
| public @NotNull Condition | lessOrEqual(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quanitified subquery for order.
Condition being deprecated.
|
| public @NotNull Condition | |
| public @NotNull Condition | |
| public @NotNull Condition | lessThan(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quanitified subquery for order.
Condition being deprecated.
|
| public @NotNull Condition | |
| public @NotNull Condition | |
| public @NotNull Condition | lt(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quanitified subquery for order.
Condition being deprecated.
|
| public @NotNull Condition | |
| public @NotNull Condition | |
| public @NotNull Condition | ne(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quanitified subquery for non-equality.
Condition being deprecated.
|
| public @NotNull BetweenAndStepR | |
| public @NotNull Condition | notBetween(R minValue, R maxValue)
Deprecated
as a consequence of
Check if this subquery is not within a range of two records.
Condition being deprecated.
|
| public @NotNull BetweenAndStepR | notBetween(Select<? extends R> minValue)
Check if this subquery is not within a range of two subqueries. |
| public @NotNull Condition | notBetween(Select<? extends R> minValue, Select<? extends R> maxValue)
Deprecated
as a consequence of
Check if this subquery is not within a range of two subqueries.
Condition being deprecated.
|
| public @NotNull BetweenAndStepR | notBetweenSymmetric(R minValue)
Check if this subquery is not within a symmetric range of two records. |
| public @NotNull Condition | notBetweenSymmetric(R minValue, R maxValue)
Deprecated
as a consequence of
Check if this subquery is not within a symmetric range of two records.
Condition being deprecated.
|
| public @NotNull BetweenAndStepR | notBetweenSymmetric(Select<? extends R> minValue)
Check if this subquery is not within a symmetric range of two subqueries. |
| public @NotNull Condition | notBetweenSymmetric(Select<? extends R> minValue, Select<? extends R> maxValue)
Deprecated
as a consequence of
Check if this subquery is not within a symmetric range of two subqueries.
Condition being deprecated.
|
| public @NotNull Condition | |
| public @NotNull Condition | |
| public @NotNull Condition | notEqual(QuantifiedSelect<? extends R> select)
Deprecated
as a consequence of
Compare this subquery with a quanitified subquery for non-equality.
Condition being deprecated.
|
| public @NotNull Condition | |
| public @NotNull Condition |