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.Object
evaluate(java.lang.Object value, java.lang.Object ob, java.lang.Object[] params, OpenJPAStateManager sm)
protected java.lang.Number
executeDelete(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 ResultObjectProvider
executeQuery(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 int
executeUpdate(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.Number
executeUpdate(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.Number
executeUpdate(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 ExpressionFactory
getExpressionFactory(ClassMetaData meta)
Return anExpressionFactory
to use to create an expression to be executed against an extent.FilterListener
getFilterListener(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.JDBCStore
getStore()
Return the store.static Context[]
getThreadLocalContext()
static Context
getThreadLocalContext(Context orig)
static Context
getThreadLocalContext(Context lctx, Context cloneFrom)
static Select
getThreadLocalSelect(Select select)
java.lang.Object
newCompilationKey()
Create a new key for caching compiled query information.protected java.sql.PreparedStatement
prepareStatement(java.sql.Connection conn, SQLBuffer sql)
This method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.boolean
supportsDataStoreExecution()
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:StoreQuery
Return the standard filter listener for the given tag, or null.- Specified by:
getFilterListener
in interfaceStoreQuery
- Overrides:
getFilterListener
in classExpressionStoreQuery
-
newCompilationKey
public java.lang.Object newCompilationKey()
Description copied from interface:StoreQuery
Create a new key for caching compiled query information. May be null.- Specified by:
newCompilationKey
in interfaceStoreQuery
- Overrides:
newCompilationKey
in classAbstractStoreQuery
-
supportsDataStoreExecution
public boolean supportsDataStoreExecution()
Description copied from interface:StoreQuery
True if this query supports datastore execution, false if it can only run in memory.- Specified by:
supportsDataStoreExecution
in interfaceStoreQuery
- Overrides:
supportsDataStoreExecution
in classAbstractStoreQuery
-
getIndependentExpressionCandidates
protected ClassMetaData[] getIndependentExpressionCandidates(ClassMetaData meta, boolean subclasses)
Description copied from class:ExpressionStoreQuery
Return the assignable types for the given metadata whose expression trees must be compiled independently.- Overrides:
getIndependentExpressionCandidates
in classExpressionStoreQuery
-
getExpressionFactory
protected ExpressionFactory getExpressionFactory(ClassMetaData meta)
Description copied from class:ExpressionStoreQuery
Return anExpressionFactory
to 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:
getExpressionFactory
in 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:ExpressionStoreQuery
Execute the given expression against the given candidate extent.- Overrides:
executeQuery
in 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:ExpressionStoreQuery
Execute the given expression against the given candidate extent and delete the instances.- Overrides:
executeDelete
in 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:ExpressionStoreQuery
Execute the given expression against the given candidate extent and updates the instances.- Overrides:
executeUpdate
in 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:ExpressionStoreQuery
Return the commands that will be sent to the datastore in order to execute the query, typically in the database's native language.- Overrides:
getDataStoreActions
in 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.SQLException
This 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.SQLException
This 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:
evaluate
in interfaceStoreQuery
- Overrides:
evaluate
in classAbstractStoreQuery
-
getThreadLocalContext
public static Context[] getThreadLocalContext()
-
-