org.apache.openjpa.jdbc.kernel
Class SQLStoreQuery.SQLExecutor

java.lang.Object
  extended by org.apache.openjpa.kernel.AbstractStoreQuery.AbstractExecutor
      extended by org.apache.openjpa.jdbc.kernel.SQLStoreQuery.SQLExecutor
All Implemented Interfaces:
StoreQuery.Executor
Direct Known Subclasses:
DistributedSQLStoreQuery.ParallelExecutor
Enclosing class:
SQLStoreQuery

public static class SQLStoreQuery.SQLExecutor
extends AbstractStoreQuery.AbstractExecutor

Executes the filter as a SQL query.


Constructor Summary
SQLStoreQuery.SQLExecutor(SQLStoreQuery q, ClassMetaData candidate)
           
 
Method Summary
protected  ResultSet executeQuery(JDBCStore store, Connection conn, PreparedStatement stmnt, SQLBuffer buf, List paramList)
          This method is to provide override for non-JDBC or JDBC-like implementation of executing query.
 ResultObjectProvider executeQuery(StoreQuery q, Object[] params, StoreQuery.Range range)
          Return the result of executing this query with the given parameter values.
protected  int executeUpdate(JDBCStore store, Connection conn, PreparedStatement stmnt, SQLBuffer buf)
          This method is to provide override for non-JDBC or JDBC-like implementation of executing update.
 Number executeUpdate(StoreQuery q, Object[] params)
          Updates the objects that result from the execution of the query, retuning the number of objects that were updated.
 String[] getDataStoreActions(StoreQuery q, Object[] params, StoreQuery.Range range)
          Return a description of the commands that will be sent to the datastore in order to execute the query.
 int getOperation(StoreQuery q)
          Returns the operation this executor is meant to execute.
 boolean isPacking(StoreQuery q)
          Return true if this executor packs projections into the result class itself.
protected  PreparedStatement prepareCall(Connection conn, SQLBuffer buf)
          This method is to provide override for non-JDBC or JDBC-like implementation of preparing call statement.
protected  PreparedStatement prepareCall(Connection conn, SQLBuffer buf, JDBCFetchConfiguration fetch, int rsType, int rsConcur)
          This method is to provide override for non-JDBC or JDBC-like implementation of preparing call statement.
protected  PreparedStatement prepareStatement(Connection conn, SQLBuffer buf)
          This method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.
protected  PreparedStatement prepareStatement(Connection conn, SQLBuffer buf, JDBCFetchConfiguration fetch, int rsType, int rsConcur)
          This method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.
 Object[] toParameterArray(StoreQuery q, Map userParams)
          The given query is parsed to find the parameter tokens of the form ?n which is different than ? tokens in actual SQL parameter tokens.
 
Methods inherited from class org.apache.openjpa.kernel.AbstractStoreQuery.AbstractExecutor
executeDelete, getAccessPathMetaDatas, getAlias, getAscending, getOrderedParameterTypes, getOrderingValue, getParameterTypes, getProjectionAliases, getProjectionTypes, getQueryExpressions, getRange, getResultClass, getResultShape, getUpdates, hasGrouping, isAggregate, isDistinct, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SQLStoreQuery.SQLExecutor

public SQLStoreQuery.SQLExecutor(SQLStoreQuery q,
                                 ClassMetaData candidate)
Method Detail

getOperation

public int getOperation(StoreQuery q)
Description copied from interface: StoreQuery.Executor
Returns the operation this executor is meant to execute.

Specified by:
getOperation in interface StoreQuery.Executor
Overrides:
getOperation in class AbstractStoreQuery.AbstractExecutor
See Also:
QueryOperations

executeUpdate

public Number executeUpdate(StoreQuery q,
                            Object[] params)
Description copied from interface: StoreQuery.Executor
Updates the objects that result from the execution of the query, retuning the number of objects that were updated.

Specified by:
executeUpdate in interface StoreQuery.Executor
Overrides:
executeUpdate in class AbstractStoreQuery.AbstractExecutor

executeQuery

public ResultObjectProvider executeQuery(StoreQuery q,
                                         Object[] params,
                                         StoreQuery.Range range)
Description copied from interface: StoreQuery.Executor
Return the result of executing this query with the given parameter values. If this query is a projection and this executor does not pack results itself, each element of the returned result object provider should be an object array containing the projection values.

See Also:
StoreQuery.Executor.isPacking(org.apache.openjpa.kernel.StoreQuery)

getDataStoreActions

public String[] getDataStoreActions(StoreQuery q,
                                    Object[] params,
                                    StoreQuery.Range range)
Description copied from interface: StoreQuery.Executor
Return a description of the commands that will be sent to the datastore in order to execute the query.

Specified by:
getDataStoreActions in interface StoreQuery.Executor
Overrides:
getDataStoreActions in class AbstractStoreQuery.AbstractExecutor

isPacking

public boolean isPacking(StoreQuery q)
Description copied from interface: StoreQuery.Executor
Return true if this executor packs projections into the result class itself. Executors for query languages that allow projections without result clauses must return true and perform the result packing themselves.

Specified by:
isPacking in interface StoreQuery.Executor
Overrides:
isPacking in class AbstractStoreQuery.AbstractExecutor

prepareCall

protected PreparedStatement prepareCall(Connection conn,
                                        SQLBuffer buf)
                                 throws SQLException
This method is to provide override for non-JDBC or JDBC-like implementation of preparing call statement.

Throws:
SQLException

executeUpdate

protected int executeUpdate(JDBCStore store,
                            Connection conn,
                            PreparedStatement stmnt,
                            SQLBuffer buf)
                     throws SQLException
This method is to provide override for non-JDBC or JDBC-like implementation of executing update.

Throws:
SQLException

prepareCall

protected PreparedStatement prepareCall(Connection conn,
                                        SQLBuffer buf,
                                        JDBCFetchConfiguration fetch,
                                        int rsType,
                                        int rsConcur)
                                 throws SQLException
This method is to provide override for non-JDBC or JDBC-like implementation of preparing call statement.

Throws:
SQLException

prepareStatement

protected PreparedStatement prepareStatement(Connection conn,
                                             SQLBuffer buf)
                                      throws SQLException
This method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.

Throws:
SQLException

prepareStatement

protected PreparedStatement prepareStatement(Connection conn,
                                             SQLBuffer buf,
                                             JDBCFetchConfiguration fetch,
                                             int rsType,
                                             int rsConcur)
                                      throws SQLException
This method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.

Throws:
SQLException

executeQuery

protected ResultSet executeQuery(JDBCStore store,
                                 Connection conn,
                                 PreparedStatement stmnt,
                                 SQLBuffer buf,
                                 List paramList)
                          throws SQLException
This method is to provide override for non-JDBC or JDBC-like implementation of executing query.

Throws:
SQLException

toParameterArray

public Object[] toParameterArray(StoreQuery q,
                                 Map userParams)
The given query is parsed to find the parameter tokens of the form ?n which is different than ? tokens in actual SQL parameter tokens. These ?n style tokens are replaced in the query string by ? tokens. During the token parsing, the ordering of the tokens is recorded. The given userParam must contain parameter keys as Integer and the same Integers must appear in the tokens.

Returns:
array with parameter values ordered in the same way as this receiver's executeXXX() method expects.


Copyright © 2006-2012 Apache Software Foundation. All Rights Reserved.