Top Description Methods
org.jooq

public Interface SelectOnStep<R extends org.jooq.Record>

Known Direct Subinterfaces
org.jooq.SelectJoinPartitionByStep
Imports
org.jetbrains.annotations.*, java.util.Collection, org.jooq.exception.DataAccessException, org.jooq.impl.DSL

This type is used for the 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

Referencing 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:

Author
Lukas Eder

Method Summary

Modifier and TypeMethod and Description
public @NotNull SelectOnConditionStep<R>
on(Condition condition)

Deprecated as a consequence of Condition being deprecated.
Add an ON clause to the previous JOIN, connecting them with each other with Operator#AND.
public @NotNull SelectOnConditionStep<R>
on(Condition... conditions)

Deprecated as a consequence of Condition being deprecated.
Add an ON clause to the previous JOIN, connecting them with each other with Operator#AND.
public @NotNull SelectOnConditionStep<R>
on(Field<Boolean> condition)

Deprecated as a consequence of Field being deprecated.
Add an ON clause to the previous JOIN.
public @NotNull SelectOnConditionStep<R>
on(SQL sql)

Add an ON clause to the previous JOIN.

public @NotNull SelectOnConditionStep<R>
on(String sql)

Add an ON clause to the previous JOIN.

public @NotNull SelectOnConditionStep<R>
on(String sql, Object... bindings)

Add an ON clause to the previous JOIN.

public @NotNull SelectOnConditionStep<R>
on(String sql, QueryPart... parts)

Add an ON clause to the previous JOIN.

public @NotNull SelectOnConditionStep<R>
onKey()

Join the previous table on a non-ambiguous foreign key relationship between the two joined tables.

public @NotNull SelectOnConditionStep<R>
onKey(TableField<?, ?>... keyFields)

Deprecated as a consequence of TableField being deprecated.
Join the previous table on a non-ambiguous foreign key relationship between the two joined tables.
public @NotNull SelectOnConditionStep<R>
onKey(ForeignKey<?, ?> key)

Join the table on a non-ambiguous foreign key relationship between the two joined tables.

public @NotNull SelectJoinStep<R>
using(Field<?>... fields)

Deprecated as a consequence of Field being deprecated.
Join the previous table with the USING(column [, column…]) syntax.
public @NotNull SelectJoinStep<R>
using(Collection<? extends Field<?>> fields)

Join the previous table with the USING(column [, column…]) syntax.

Method Detail

onback to summary
public @NotNull SelectOnConditionStep<R> on(Condition condition)

Deprecated

as a consequence of Condition being deprecated. See corresponding docs for further information.

Add an ON clause to the previous JOIN, connecting them with each other with Operator#AND.

Annotations
@NotNull
@CheckReturnValue
@Support
onback to summary
public @NotNull SelectOnConditionStep<R> on(Condition... conditions)

Deprecated

as a consequence of Condition being deprecated. See corresponding docs for further information.

Add an ON clause to the previous JOIN, connecting them with each other with Operator#AND.

Annotations
@NotNull
@CheckReturnValue
@Support
onback to summary
public @NotNull SelectOnConditionStep<R> on(Field<Boolean> condition)

Deprecated

as a consequence of Field being deprecated. See corresponding docs for further information.

Add an ON clause to the previous JOIN.

Annotations
@NotNull
@CheckReturnValue
@Support
onback to summary
public @NotNull SelectOnConditionStep<R> on(SQL sql)

Add an ON clause to the previous JOIN.

Note

When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!

Annotations
@NotNull
@CheckReturnValue
@Support
@PlainSQL
See Also
DSL#condition(SQL), SQL
onback to summary
public @NotNull SelectOnConditionStep<R> on(String sql)

Add an ON clause to the previous JOIN.

Note

When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!

Annotations
@NotNull
@CheckReturnValue
@Support
@PlainSQL
See Also
DSL#condition(String), SQL
onback to summary
public @NotNull SelectOnConditionStep<R> on(String sql, Object... bindings)

Add an ON clause to the previous JOIN.

Note

When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!

Annotations
@NotNull
@CheckReturnValue
@Support
@PlainSQL
See Also
DSL#condition(String, Object...), DSL#sql(String, Object...), SQL
onback to summary
public @NotNull SelectOnConditionStep<R> on(String sql, QueryPart... parts)

Add an ON clause to the previous JOIN.

Note

When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!

Annotations
@NotNull
@CheckReturnValue
@Support
@PlainSQL
See Also
DSL#condition(String, QueryPart...), DSL#sql(String, QueryPart...), SQL
onKeyback to summary
public @NotNull SelectOnConditionStep<R> onKey() throws DataAccessException

Join the previous table on a non-ambiguous foreign key relationship between the two joined tables.

See TableOnStep#onKey(ForeignKey) for examples.

Annotations
@NotNull
@CheckReturnValue
@Support
Exceptions
DataAccessException:
If there is no non-ambiguous key definition known to jOOQ. Please note that if you evolve your schema, a previously non-ambiguous ON KEY clause can suddenly become ambiguous on an existing query, so use this clause with care.
See Also
TableOnStep#onKey(ForeignKey)
onKeyback to summary
public @NotNull SelectOnConditionStep<R> onKey(TableField<?, ?>... keyFields) throws DataAccessException

Deprecated

as a consequence of TableField being deprecated. See corresponding docs for further information.

Join the previous table on a non-ambiguous foreign key relationship between the two joined tables.

See TableOnStep#onKey(ForeignKey) for examples.

Annotations
@NotNull
@CheckReturnValue
@Support
Exceptions
DataAccessException:
If there is no non-ambiguous key definition known to jOOQ. Please note that if you evolve your schema, a previously non-ambiguous ON KEY clause can suddenly become ambiguous on an existing query, so use this clause with care.
See Also
TableOnStep#onKey(ForeignKey)
onKeyback to summary
public @NotNull SelectOnConditionStep<R> onKey(ForeignKey<?, ?> key)

Join the table on a non-ambiguous foreign key relationship between the two joined tables.

See TableOnStep#onKey(ForeignKey) for examples.

Annotations
@NotNull
@CheckReturnValue
@Support
See Also
TableOnStep#onKey(ForeignKey)
usingback to summary
public @NotNull SelectJoinStep<R> using(Field<?>... fields)

Deprecated

as a consequence of Field being deprecated. See corresponding docs for further information.

Join the previous table with the USING(column [, column…]) syntax.

If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.

Annotations
@NotNull
@CheckReturnValue
@Support
usingback to summary
public @NotNull SelectJoinStep<R> using(Collection<? extends Field<?>> fields)

Join the previous table with the USING(column [, column…]) syntax.

If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.

Annotations
@NotNull
@CheckReturnValue
@Support