Top Description Methods
org.jooq

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

extends SelectForStep<R extends Record>
Known Direct Subinterfaces
org.jooq.SelectLimitAfterOffsetStep, org.jooq.SelectLimitStep, org.jooq.SelectOffsetStep, org.jooq.SelectSeekLimitStep, org.jooq.SelectWithTiesAfterOffsetStep
Imports
org.jetbrains.annotations.*

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 SelectForUpdateOfStep<R>
forKeyShare()

Add a FOR KEY SHARE clause to the end of the query.

public @NotNull SelectForUpdateOfStep<R>
forNoKeyUpdate()

Add a FOR NO KEY UPDATE clause to the end of the query.

public @NotNull SelectForUpdateOfStep<R>
forShare()

Add a FOR SHARE clause to the end of the query.

public @NotNull SelectForUpdateOfStep<R>
forUpdate()

Add a FOR UPDATE clause to the end of the query.

public @NotNull SelectFinalStep<R>
withCheckOption()

Add a WITH CHECK OPTION clause to the end of the subquery.

public @NotNull SelectFinalStep<R>
withReadOnly()

Add a WITH READ ONLY clause to the end of the subquery.

Method Detail

forKeyShareback to summary
public @NotNull SelectForUpdateOfStep<R> forKeyShare()

Add a FOR KEY SHARE clause to the end of the query.

Annotations
@NotNull
@CheckReturnValue
@Support:POSTGRES, YUGABYTEDB
See Also
SelectQuery#setForShare(boolean)
forNoKeyUpdateback to summary
public @NotNull SelectForUpdateOfStep<R> forNoKeyUpdate()

Add a FOR NO KEY UPDATE clause to the end of the query.

Annotations
@NotNull
@CheckReturnValue
@Support:POSTGRES, YUGABYTEDB
See Also
SelectQuery#setForShare(boolean)
forShareback to summary
public @NotNull SelectForUpdateOfStep<R> forShare()

Add a FOR SHARE clause to the end of the query.

Annotations
@NotNull
@CheckReturnValue
@Support:MARIADB, MYSQL, POSTGRES, YUGABYTEDB
See Also
SelectQuery#setForShare(boolean)
forUpdateback to summary
public @NotNull SelectForUpdateOfStep<R> forUpdate()

Add a FOR UPDATE clause to the end of the query.

Note

not all SQL dialects allow for combining a FOR UPDATE clause with LIMIT … OFFSET, or with GROUP BY. This essentially includes SQLDialect#INGRES and SQLDialect#ORACLE. These incompatibilities are not reflected by the jOOQ API.

Annotations
@NotNull
@CheckReturnValue
@Support:CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB
See Also
SelectQuery#setForUpdate(boolean)
withCheckOptionback to summary
public @NotNull SelectFinalStep<R> withCheckOption()

Add a WITH CHECK OPTION clause to the end of the subquery.

Annotations
@NotNull
@CheckReturnValue
@Support:FIREBIRD, MARIADB, MYSQL, POSTGRES
withReadOnlyback to summary
public @NotNull SelectFinalStep<R> withReadOnly()

Add a WITH READ ONLY clause to the end of the subquery.

Annotations
@NotNull
@CheckReturnValue
@Support:CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB