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. WhileSQLExec
can be used to select data (seeexecute(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 int
queryTimeout
protected boolean
returnGeneratedKeys
protected StringBuilder
sqlBuffer
-
Fields inherited from class org.apache.cayenne.query.IndirectQuery
dataMap, lastResolver, name, replacementQuery
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods 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
queryTimeout(int queryTimeout)
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
-
-
-
-
Constructor Detail
-
SQLExec
public SQLExec(String sql)
-
-
Method Detail
-
query
public static SQLExec query(String sql)
Creates a query executing provided SQL run against default database.
-
query
public static SQLExec query(String dataMapName, String sql)
Creates a query executing provided SQL that performs routing based on the provided DataMap name.
-
getSql
public String getSql()
-
append
public SQLExec append(String sqlChunk)
Appends a piece of SQL to the previously stored SQL template.
-
paramsArray
public SQLExec paramsArray(Object... params)
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
public SQLExec paramsList(List<Object> params)
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
public Map<String,Object> getParams()
Returns a potentially immutable map of named parameters that will be bound to SQL.
-
getPositionalParams
public List<Object> getPositionalParams()
Returns a potentially immutable list of positional parameters that will be bound to SQL.
-
execute
public QueryResult execute(ObjectContext context)
-
update
public int update(ObjectContext context)
-
updateBatch
public int[] updateBatch(ObjectContext context)
-
isReturnGeneratedKeys
public boolean isReturnGeneratedKeys()
- Returns:
- returnGeneratedKeys flag value
- Since:
- 4.1
-
returnGeneratedKeys
public SQLExec returnGeneratedKeys(boolean 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
-
queryTimeout
public SQLExec queryTimeout(int queryTimeout)
- Since:
- 4.2
-
createReplacementQuery
protected Query createReplacementQuery(EntityResolver resolver)
Description copied from class:IndirectQuery
Creates a substitute query. An implementor is free to provide an arbitrary replacement query.- Specified by:
createReplacementQuery
in classIndirectQuery
-
-