Package org.apache.cayenne.query
Class SQLExec
java.lang.Object
org.apache.cayenne.query.IndirectQuery
org.apache.cayenne.query.SQLExec
- All Implemented Interfaces:
Serializable
,Query
public class SQLExec extends IndirectQuery
A generic query based on raw SQL and featuring fluent API. While
SQLExec
can be used to select data (see execute(ObjectContext)
), it is normally used for updates, DDL operations, etc.- Since:
- 4.0
- See Also:
- Serialized Form
-
Field Summary
Fields Modifier and Type Field Description protected String
dataMapName
protected Map<String,Object>
params
protected List<Object>
positionalParams
protected boolean
returnGeneratedKeys
protected StringBuilder
sqlBuffer
Fields inherited from class org.apache.cayenne.query.IndirectQuery
dataMap, lastResolver, name, replacementQuery
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description SQLExec
append(String sqlChunk)
Appends a piece of SQL to the previously stored SQL template.protected Query
createReplacementQuery(EntityResolver resolver)
Creates a substitute query.QueryResult
execute(ObjectContext context)
Map<String,Object>
getParams()
Returns a potentially immutable map of named parameters that will be bound to SQL.List<Object>
getPositionalParams()
Returns a potentially immutable list of positional parameters that will be bound to SQL.String
getSql()
boolean
isReturnGeneratedKeys()
SQLExec
params(String name, Object value)
SQLExec
params(Map<String,?> parameters)
SQLExec
paramsArray(Object... params)
Initializes positional parameters of the query.SQLExec
paramsList(List<Object> params)
Initializes positional parameters of the query.static SQLExec
query(String sql)
Creates a query executing provided SQL run against default database.static SQLExec
query(String dataMapName, String sql)
Creates a query executing provided SQL that performs routing based on the provided DataMap name.SQLExec
returnGeneratedKeys(boolean returnGeneratedKeys)
Flag indicating that generated keys should be returned by this query execution.int
update(ObjectContext context)
int[]
updateBatch(ObjectContext context)
Methods inherited from class org.apache.cayenne.query.IndirectQuery
createSQLAction, getMetaData, getReplacementQuery, route
-
Field Details
-
dataMapName
-
sqlBuffer
-
params
-
positionalParams
-
returnGeneratedKeys
protected boolean returnGeneratedKeys
-
-
Constructor Details
-
SQLExec
-
-
Method Details
-
query
Creates a query executing provided SQL run against default database. -
query
Creates a query executing provided SQL that performs routing based on the provided DataMap name. -
getSql
-
append
Appends a piece of SQL to the previously stored SQL template. -
params
-
params
-
paramsArray
Initializes positional parameters of the query. Parameters are bound in the order they are found in the SQL template. If a given parameter name is used more than once, only the first occurrence is treated as "position", subsequent occurrences are bound with the same value as the first one. If template parameters count is different from the array parameter count, an exception will be thrown.Note that calling this method will reset any previously set *named* parameters.
-
paramsList
Initializes positional parameters of the query. Parameters are bound in the order they are found in the SQL template. If a given parameter name is used more than once, only the first occurrence is treated as "position", subsequent occurrences are bound with the same value as the first one. If template parameters count is different from the list parameter count, an exception will be thrown.Note that calling this method will reset any previously set *named* parameters.
-
getParams
Returns a potentially immutable map of named parameters that will be bound to SQL. -
getPositionalParams
Returns a potentially immutable list of positional parameters that will be bound to SQL. -
execute
-
update
-
updateBatch
-
isReturnGeneratedKeys
public boolean isReturnGeneratedKeys()- Returns:
- returnGeneratedKeys flag value
- Since:
- 4.1
-
returnGeneratedKeys
Flag indicating that generated keys should be returned by this query execution. Generated keys could be read viaQueryResponse.currentList()
method- Parameters:
returnGeneratedKeys
- flag value- Since:
- 4.1
- See Also:
Statement.RETURN_GENERATED_KEYS
-
createReplacementQuery
Description copied from class:IndirectQuery
Creates a substitute query. An implementor is free to provide an arbitrary replacement query.- Specified by:
createReplacementQuery
in classIndirectQuery
-