-
- Type Parameters:
R
- The record type of the table being modified
- All Superinterfaces:
Attachable
,AutoCloseable
,Flow.Publisher<Integer>
,org.reactivestreams.Publisher<Integer>
,Query
,QueryPart
,RowCountQuery
,Serializable
,Statement
- All Known Subinterfaces:
InsertQuery<R>
,UpdateQuery<R>
public interface StoreQuery<R extends Record> extends RowCountQuery
A query storing objects to the database. This is either an insert or an update query.Instances of this type cannot be created directly, only of its subtypes.
- Author:
- Lukas Eder
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <T> void
addValue(Field<T> field, Field<T> value)
Add a value to the store statement<T> void
addValue(Field<T> field, T value)
Add a value to the store statementvoid
addValues(Map<?,?> map)
Add multiple values to the store statement.Result<?>
getResult()
The records holding returned values as specified by any of thesetReturning()
methods.R
getReturnedRecord()
The record holding returned values as specified by any of thesetReturning()
methods.Result<R>
getReturnedRecords()
The records holding returned values as specified by any of thesetReturning()
methods.void
setRecord(R record)
Add values to the store statementvoid
setReturning()
Configure theINSERT
orUPDATE
statement to return all fields inR
.void
setReturning(Collection<? extends SelectFieldOrAsterisk> fields)
Configure theINSERT
orUPDATE
statement to return a list of fields inR
.void
setReturning(Identity<R,?> identity)
Configure theINSERT
orUPDATE
statement to return the generated identity value.void
setReturning(SelectFieldOrAsterisk... fields)
Configure theINSERT
orUPDATE
statement to return a list of fields inR
.-
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
-
setRecord
@Support void setRecord(R record)
Add values to the store statement- Parameters:
record
- The record holding values that are stored by the query
-
addValue
@Support <T> void addValue(Field<T> field, T value)
Add a value to the store statement- Parameters:
field
- The fieldvalue
- The value
-
addValue
@Support <T> void addValue(Field<T> field, Field<T> value)
Add a value to the store statement- Parameters:
field
- The fieldvalue
- The value. If value isnull
, this results in callingaddValue(Field, Object)
with null as a value.
-
setReturning
@Support void setReturning()
Configure theINSERT
orUPDATE
statement to return all fields inR
.- See Also:
getReturnedRecords()
-
setReturning
@Support void setReturning(Identity<R,?> identity)
Configure theINSERT
orUPDATE
statement to return the generated identity value.- Parameters:
identity
- The table's identity- See Also:
getReturnedRecords()
-
setReturning
@Support void setReturning(SelectFieldOrAsterisk... fields)
Configure theINSERT
orUPDATE
statement to return a list of fields inR
.- Parameters:
fields
- Fields to be returned- See Also:
getReturnedRecords()
-
setReturning
@Support void setReturning(Collection<? extends SelectFieldOrAsterisk> fields)
Configure theINSERT
orUPDATE
statement to return a list of fields inR
.- Parameters:
fields
- Fields to be returned- See Also:
getReturnedRecords()
-
getReturnedRecord
@Support R getReturnedRecord()
The record holding returned values as specified by any of thesetReturning()
methods.If the insert statement returns several records, this is the same as calling
getReturnedRecords().get(0)
This implemented differently for every dialect:
- Firebird and Postgres have native support for
INSERT .. RETURNING
andUPDATE .. RETURNING
clauses - HSQLDB, Oracle, and DB2 JDBC drivers allow for retrieving any table column as "generated key" in one statement
- Derby, H2, Ingres, MySQL, SQL Server only allow for retrieving IDENTITY column values as "generated key". If other fields are requested, a second statement is issued. Client code must assure transactional integrity between the two statements.
- Sybase and SQLite allow for retrieving IDENTITY values as
@@identity
orlast_inserted_rowid()
values. Those values are fetched in a separateSELECT
statement. If other fields are requested, a second statement is issued. Client code must assure transactional integrity between the two statements.
- Returns:
- The returned value as specified by any of the
setReturning()
methods. This may returnnull
in case jOOQ could not retrieve any generated keys from the JDBC driver. - See Also:
getReturnedRecords()
- Firebird and Postgres have native support for
-
getReturnedRecords
@Support Result<R> getReturnedRecords()
The records holding returned values as specified by any of thesetReturning()
methods.This implemented differently for every dialect:
- Firebird and Postgres have native support for
INSERT .. RETURNING
andUPDATE .. RETURNING
clauses - HSQLDB, Oracle, and DB2 JDBC drivers allow for retrieving any table column as "generated key" in one statement
- Derby, H2, Ingres, MySQL, SQL Server only allow for retrieving IDENTITY column values as "generated key". If other fields are requested, a second statement is issued. Client code must assure transactional integrity between the two statements.
- Sybase and SQLite allow for retrieving IDENTITY values as
@@identity
orlast_inserted_rowid()
values. Those values are fetched in a separateSELECT
statement. If other fields are requested, a second statement is issued. Client code must assure transactional integrity between the two statements.
[#5070] Due to an early API design flaw, this method historically returns the type
R
, not a more generic typeRecord
. This means that only actual columns inR
can be returned. For a more generic set of column expressions, usegetResult()
instead.- Returns:
- The returned values as specified by any of the
setReturning()
methods. 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.
- Firebird and Postgres have native support for
-
getResult
@Support Result<?> getResult()
The records holding returned values as specified by any of thesetReturning()
methods.This implemented differently for every dialect:
- Firebird and Postgres have native support for
INSERT .. RETURNING
andUPDATE .. RETURNING
clauses - HSQLDB, Oracle, and DB2 JDBC drivers allow for retrieving any table column as "generated key" in one statement
- Derby, H2, Ingres, MySQL, SQL Server only allow for retrieving IDENTITY column values as "generated key". If other fields are requested, a second statement is issued. Client code must assure transactional integrity between the two statements.
- Sybase and SQLite allow for retrieving IDENTITY values as
@@identity
orlast_inserted_rowid()
values. Those values are fetched in a separateSELECT
statement. If other fields are requested, a second statement is issued. Client code must assure transactional integrity between the two statements.
- Returns:
- The returned values as specified by any of the
setReturning()
methods. 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.
- Firebird and Postgres have native support for
-
-