Package org.apache.openjpa.jdbc.kernel
Class JDBCStoreQuery
- java.lang.Object
-
- org.apache.openjpa.kernel.AbstractStoreQuery
-
- org.apache.openjpa.kernel.ExpressionStoreQuery
-
- org.apache.openjpa.jdbc.kernel.JDBCStoreQuery
-
- All Implemented Interfaces:
java.io.Serializable,QueryOperations,StoreQuery
public class JDBCStoreQuery extends ExpressionStoreQuery
JDBC query implementation.- Author:
- Abe White
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.openjpa.kernel.ExpressionStoreQuery
ExpressionStoreQuery.AbstractExpressionExecutor, ExpressionStoreQuery.DataStoreExecutor, ExpressionStoreQuery.InMemoryExecutor
-
Nested classes/interfaces inherited from class org.apache.openjpa.kernel.AbstractStoreQuery
AbstractStoreQuery.AbstractExecutor
-
Nested classes/interfaces inherited from interface org.apache.openjpa.kernel.StoreQuery
StoreQuery.Executor, StoreQuery.Range
-
-
Field Summary
-
Fields inherited from class org.apache.openjpa.kernel.ExpressionStoreQuery
_parsed, _parser
-
Fields inherited from class org.apache.openjpa.kernel.AbstractStoreQuery
ctx
-
Fields inherited from interface org.apache.openjpa.kernel.QueryOperations
OP_DELETE, OP_SELECT, OP_UPDATE
-
Fields inherited from interface org.apache.openjpa.kernel.StoreQuery
EMPTY_BOOLEANS, EMPTY_CLASSES, EMPTY_METAS, EMPTY_OBJECTS, EMPTY_ORDERED_PARAMS, EMPTY_PARAMS, EMPTY_STRINGS
-
-
Constructor Summary
Constructors Constructor Description JDBCStoreQuery(JDBCStore store, ExpressionParser parser)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectevaluate(java.lang.Object value, java.lang.Object ob, java.lang.Object[] params, OpenJPAStateManager sm)protected java.lang.NumberexecuteDelete(StoreQuery.Executor ex, ClassMetaData base, ClassMetaData[] metas, boolean subclasses, ExpressionFactory[] facts, QueryExpressions[] exps, java.lang.Object[] params)Execute the given expression against the given candidate extent and delete the instances.protected ResultObjectProviderexecuteQuery(StoreQuery.Executor ex, ClassMetaData base, ClassMetaData[] metas, boolean subclasses, ExpressionFactory[] facts, QueryExpressions[] exps, java.lang.Object[] params, StoreQuery.Range range)Execute the given expression against the given candidate extent.protected intexecuteUpdate(java.sql.Connection conn, java.sql.PreparedStatement stmnt, SQLBuffer sqlBuf, boolean isUpdate)This method is to provide override for non-JDBC or JDBC-like implementation of executing update.protected java.lang.NumberexecuteUpdate(StoreQuery.Executor ex, ClassMetaData base, ClassMetaData[] metas, boolean subclasses, ExpressionFactory[] facts, QueryExpressions[] exps, java.lang.Object[] params)Execute the given expression against the given candidate extent and updates the instances.protected java.lang.NumberexecuteUpdate(ClassMetaData base, ClassMetaData[] metas, boolean subclasses, ExpressionFactory[] facts, QueryExpressions[] parsed, java.lang.Object[] params)protected java.lang.String[]getDataStoreActions(ClassMetaData base, ClassMetaData[] metas, boolean subclasses, ExpressionFactory[] facts, QueryExpressions[] exps, java.lang.Object[] params, StoreQuery.Range range)Return the commands that will be sent to the datastore in order to execute the query, typically in the database's native language.protected ExpressionFactorygetExpressionFactory(ClassMetaData meta)Return anExpressionFactoryto use to create an expression to be executed against an extent.FilterListenergetFilterListener(java.lang.String tag)Return the standard filter listener for the given tag, or null.protected ClassMetaData[]getIndependentExpressionCandidates(ClassMetaData meta, boolean subclasses)Return the assignable types for the given metadata whose expression trees must be compiled independently.JDBCStoregetStore()Return the store.static Context[]getThreadLocalContext()static ContextgetThreadLocalContext(Context orig)static ContextgetThreadLocalContext(Context lctx, Context cloneFrom)static SelectgetThreadLocalSelect(Select select)java.lang.ObjectnewCompilationKey()Create a new key for caching compiled query information.protected java.sql.PreparedStatementprepareStatement(java.sql.Connection conn, SQLBuffer sql)This method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.booleansupportsDataStoreExecution()True if this query supports datastore execution, false if it can only run in memory.-
Methods inherited from class org.apache.openjpa.kernel.ExpressionStoreQuery
getCompilation, getResolver, invalidateCompilation, newCompilation, newDataStoreExecutor, newInMemoryExecutor, populateFromCompilation, setQuery, supportsInMemoryExecution
-
Methods inherited from class org.apache.openjpa.kernel.AbstractStoreQuery
getAggregateListener, getContext, requiresCandidateType, requiresParameterDeclarations, setContext, supportsAbstractExecutors, supportsParameterDeclarations
-
-
-
-
Constructor Detail
-
JDBCStoreQuery
public JDBCStoreQuery(JDBCStore store, ExpressionParser parser)
Constructor. Supply store manager.
-
-
Method Detail
-
getStore
public JDBCStore getStore()
Return the store.
-
getFilterListener
public FilterListener getFilterListener(java.lang.String tag)
Description copied from interface:StoreQueryReturn the standard filter listener for the given tag, or null.- Specified by:
getFilterListenerin interfaceStoreQuery- Overrides:
getFilterListenerin classExpressionStoreQuery
-
newCompilationKey
public java.lang.Object newCompilationKey()
Description copied from interface:StoreQueryCreate a new key for caching compiled query information. May be null.- Specified by:
newCompilationKeyin interfaceStoreQuery- Overrides:
newCompilationKeyin classAbstractStoreQuery
-
supportsDataStoreExecution
public boolean supportsDataStoreExecution()
Description copied from interface:StoreQueryTrue if this query supports datastore execution, false if it can only run in memory.- Specified by:
supportsDataStoreExecutionin interfaceStoreQuery- Overrides:
supportsDataStoreExecutionin classAbstractStoreQuery
-
getIndependentExpressionCandidates
protected ClassMetaData[] getIndependentExpressionCandidates(ClassMetaData meta, boolean subclasses)
Description copied from class:ExpressionStoreQueryReturn the assignable types for the given metadata whose expression trees must be compiled independently.- Overrides:
getIndependentExpressionCandidatesin classExpressionStoreQuery
-
getExpressionFactory
protected ExpressionFactory getExpressionFactory(ClassMetaData meta)
Description copied from class:ExpressionStoreQueryReturn anExpressionFactoryto use to create an expression to be executed against an extent. Each factory will be used to compile one filter only. The factory must be cachable.- Overrides:
getExpressionFactoryin classExpressionStoreQuery
-
executeQuery
protected ResultObjectProvider executeQuery(StoreQuery.Executor ex, ClassMetaData base, ClassMetaData[] metas, boolean subclasses, ExpressionFactory[] facts, QueryExpressions[] exps, java.lang.Object[] params, StoreQuery.Range range)
Description copied from class:ExpressionStoreQueryExecute the given expression against the given candidate extent.- Overrides:
executeQueryin classExpressionStoreQuery- Parameters:
ex- current executorbase- the base type the query should matchmetas- the independent candidate typessubclasses- true if subclasses should be included in the resultsfacts- the expression factory used to build the query for each base typeexps- the parsed query valuesparams- parameter values, or empty arrayrange- result range- Returns:
- a provider for matching objects
-
executeDelete
protected java.lang.Number executeDelete(StoreQuery.Executor ex, ClassMetaData base, ClassMetaData[] metas, boolean subclasses, ExpressionFactory[] facts, QueryExpressions[] exps, java.lang.Object[] params)
Description copied from class:ExpressionStoreQueryExecute the given expression against the given candidate extent and delete the instances.- Overrides:
executeDeletein classExpressionStoreQuery- Parameters:
ex- current executorbase- the base type the query should matchmetas- the independent candidate typessubclasses- true if subclasses should be included in the resultsfacts- the expression factory used to build the query for each base typeexps- the parsed query valuesparams- parameter values, or empty array- Returns:
- a number indicating the number of instances deleted, or null to execute the delete in memory
-
executeUpdate
protected java.lang.Number executeUpdate(StoreQuery.Executor ex, ClassMetaData base, ClassMetaData[] metas, boolean subclasses, ExpressionFactory[] facts, QueryExpressions[] exps, java.lang.Object[] params)
Description copied from class:ExpressionStoreQueryExecute the given expression against the given candidate extent and updates the instances.- Overrides:
executeUpdatein classExpressionStoreQuery- Parameters:
ex- current executorbase- the base type the query should matchmetas- the independent candidate typessubclasses- true if subclasses should be included in the resultsfacts- the expression factory used to build the query for each base typeexps- the parsed query valuesparams- parameter values, or empty array- Returns:
- a number indicating the number of instances updated, or null to execute the update in memory.
-
executeUpdate
protected java.lang.Number executeUpdate(ClassMetaData base, ClassMetaData[] metas, boolean subclasses, ExpressionFactory[] facts, QueryExpressions[] parsed, java.lang.Object[] params)
-
getDataStoreActions
protected java.lang.String[] getDataStoreActions(ClassMetaData base, ClassMetaData[] metas, boolean subclasses, ExpressionFactory[] facts, QueryExpressions[] exps, java.lang.Object[] params, StoreQuery.Range range)
Description copied from class:ExpressionStoreQueryReturn the commands that will be sent to the datastore in order to execute the query, typically in the database's native language.- Overrides:
getDataStoreActionsin classExpressionStoreQuery- Parameters:
base- the base type the query should matchmetas- the independent candidate typessubclasses- true if subclasses should be included in the resultsfacts- the expression factory used to build the query for each base typeexps- the parsed query valuesparams- parameter values, or empty arrayrange- result range- Returns:
- a textual description of the query to execute
-
executeUpdate
protected int executeUpdate(java.sql.Connection conn, java.sql.PreparedStatement stmnt, SQLBuffer sqlBuf, boolean isUpdate) throws java.sql.SQLExceptionThis method is to provide override for non-JDBC or JDBC-like implementation of executing update.- Throws:
java.sql.SQLException
-
prepareStatement
protected java.sql.PreparedStatement prepareStatement(java.sql.Connection conn, SQLBuffer sql) throws java.sql.SQLExceptionThis method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.- Throws:
java.sql.SQLException
-
evaluate
public java.lang.Object evaluate(java.lang.Object value, java.lang.Object ob, java.lang.Object[] params, OpenJPAStateManager sm)- Specified by:
evaluatein interfaceStoreQuery- Overrides:
evaluatein classAbstractStoreQuery
-
getThreadLocalContext
public static Context[] getThreadLocalContext()
-
-