-
- All Superinterfaces:
Attachable
,AutoCloseable
,Flow.Publisher<Integer>
,org.reactivestreams.Publisher<Integer>
,Query
,QueryPart
,RowCountQuery
,Serializable
,Statement
,Update<R>
public interface UpdateResultStep<R extends Record> extends Update<R>
This type is used for theUpdate
's DSL API.Example:
DSLContext create = DSL.using(configuration); TableRecord<?> record = create.update(table) .set(field1, value1) .set(field2, value2) .returning(field1) .fetchOne();
This implemented differently for every dialect:
- Firebird and Postgres have native support for
UPDATE .. RETURNING
clauses - DB2 allows to execute
SELECT .. FROM FINAL TABLE (UPDATE ...)
Referencing
XYZ*Step
types directly from client codeIt 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:- They're operating on mutable implementations (as of jOOQ 3.x)
- They're less composable and not easy to get right when dynamic SQL gets complex
- They're less readable
- They might have binary incompatible changes between minor releases
- Author:
- Lukas Eder
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Result<R>
fetch()
The result holding returned values as specified by theUpdateReturningStep
.R
fetchOne()
The record holding returned values as specified by theUpdateReturningStep
.Optional<R>
fetchOptional()
The record holding returned values as specified by theUpdateReturningStep
.-
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
bind, bind, cancel, close, execute, executeAsync, executeAsync, getBindValues, getParam, getParams, getSQL, getSQL, getSQL, isExecutable, keepStatement, poolable, queryTimeout
-
-
-
-
Method Detail
-
fetch
@Support({AURORA_POSTGRES,DB2,FIREBIRD,ORACLE,POSTGRES,SQLSERVER}) Result<R> fetch() throws DataAccessException
The result holding returned values as specified by theUpdateReturningStep
.- Returns:
- The returned values as specified by the
UpdateReturningStep
. Note:- Not all databases / JDBC drivers support returning several values on multi-row inserts!
- This may return an empty
Result
in case jOOQ could not retrieve any generated keys from the JDBC driver.
- Throws:
DataAccessException
- if something went wrong executing the query- See Also:
UpdateQuery.getReturnedRecords()
-
fetchOne
@Support({AURORA_POSTGRES,DB2,FIREBIRD,ORACLE,POSTGRES,SQLSERVER}) R fetchOne() throws DataAccessException, TooManyRowsException
The record holding returned values as specified by theUpdateReturningStep
.- Returns:
- The returned value as specified by the
UpdateReturningStep
. This may returnnull
in case jOOQ could not retrieve any generated keys from the JDBC driver. - Throws:
DataAccessException
- if something went wrong executing the queryTooManyRowsException
- if the query returned more than one record- See Also:
UpdateQuery.getReturnedRecord()
-
fetchOptional
@Support({AURORA_POSTGRES,DB2,FIREBIRD,ORACLE,POSTGRES,SQLSERVER}) Optional<R> fetchOptional() throws DataAccessException, TooManyRowsException
The record holding returned values as specified by theUpdateReturningStep
.- Returns:
- The returned value as specified by the
UpdateReturningStep
. - Throws:
DataAccessException
- if something went wrong executing the queryTooManyRowsException
- if the query returned more than one record- See Also:
UpdateQuery.getReturnedRecord()
-
-