- 
- 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> voidaddValue(Field<T> field, Field<T> value)Add a value to the store statement<T> voidaddValue(Field<T> field, T value)Add a value to the store statementvoidaddValues(Map<?,?> map)Add multiple values to the store statement.Result<?>getResult()The records holding returned values as specified by any of thesetReturning()methods.RgetReturnedRecord()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.voidsetRecord(R record)Add values to the store statementvoidsetReturning()Configure theINSERTorUPDATEstatement to return all fields inR.voidsetReturning(Collection<? extends SelectFieldOrAsterisk> fields)Configure theINSERTorUPDATEstatement to return a list of fields inR.voidsetReturning(Identity<R,?> identity)Configure theINSERTorUPDATEstatement to return the generated identity value.voidsetReturning(SelectFieldOrAsterisk... fields)Configure theINSERTorUPDATEstatement 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 theINSERTorUPDATEstatement to return all fields inR.- See Also:
 getReturnedRecords()
 
- 
setReturning
@Support void setReturning(Identity<R,?> identity)
Configure theINSERTorUPDATEstatement to return the generated identity value.- Parameters:
 identity- The table's identity- See Also:
 getReturnedRecords()
 
- 
setReturning
@Support void setReturning(SelectFieldOrAsterisk... fields)
Configure theINSERTorUPDATEstatement 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 theINSERTorUPDATEstatement 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 .. RETURNINGandUPDATE .. RETURNINGclauses - 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
 
@@identityorlast_inserted_rowid()values. Those values are fetched in a separateSELECTstatement. 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 returnnullin 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 .. RETURNINGandUPDATE .. RETURNINGclauses - 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
 
@@identityorlast_inserted_rowid()values. Those values are fetched in a separateSELECTstatement. 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 inRcan 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 
Resultin 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 .. RETURNINGandUPDATE .. RETURNINGclauses - 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
 
@@identityorlast_inserted_rowid()values. Those values are fetched in a separateSELECTstatement. 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
         
Resultin case jOOQ could not retrieve any generated keys from the JDBC driver. 
 
 - Firebird and Postgres have native support for
 
 
 - 
 
 -