Class StatementQueryMechanism
- java.lang.Object
-
- org.eclipse.persistence.internal.queries.DatabaseQueryMechanism
-
- org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism
-
- org.eclipse.persistence.internal.queries.CallQueryMechanism
-
- org.eclipse.persistence.internal.queries.StatementQueryMechanism
-
- All Implemented Interfaces:
Serializable
,Cloneable
- Direct Known Subclasses:
ExpressionQueryMechanism
public class StatementQueryMechanism extends CallQueryMechanism
Purpose: Mechanism used for all statement objects.
Responsibilities: Executes the appropriate statement.
- Since:
- TOPLink/Java 1.0
- Author:
- Yvon Lavoie
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected SQLStatement
sqlStatement
protected Vector
sqlStatements
Normally only a single statement is used, however multiple table may require multiple statements on write.-
Fields inherited from class org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism
call, calls
-
Fields inherited from class org.eclipse.persistence.internal.queries.DatabaseQueryMechanism
query
-
-
Constructor Summary
Constructors Constructor Description StatementQueryMechanism()
StatementQueryMechanism(DatabaseQuery query)
INTERNAL: Return a new mechanism for the queryStatementQueryMechanism(DatabaseQuery query, SQLStatement statement)
Return a new mechanism for the query
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearStatement()
The statement is no longer require after prepare so can be released.DatabaseQueryMechanism
clone(DatabaseQuery queryClone)
Clone the mechanism for the specified query clone.Integer
deleteObject()
INTERNAL: delete the objectInteger
executeNoSelect()
Update the objectExpression
getSelectionCriteria()
Return the selection criteria for the statement.SQLStatement
getSQLStatement()
INTERNAL: Return the sqlStatementVector
getSQLStatements()
Normally only a single statement is used, however multiple table may require multiple statements on write.boolean
hasMultipleStatements()
Normally only a single statement is used, however multiple table may require multiple statements on write.void
insertObject()
Insert the objectvoid
insertObject(boolean reprepare)
Insert the object if the reprepare flag is set, first reprepare the query.boolean
isCallQueryMechanism()
Return true if this is a call query mechanismboolean
isStatementQueryMechanism()
Return true if this is a statement query mechanismvoid
prepare()
INTERNAL: This is different from 'prepareForExecution' in that this is called on the original query, and the other is called on the copy of the query.void
prepareCursorSelectAllRows()
Pre-build the SQL call from the statement.void
prepareDeleteAll()
Pre-build the SQL call from the statement.void
prepareDeleteObject()
Pre-build the SQL call from the statement.void
prepareDoesExist(DatabaseField field)
Pre-build the SQL call from the statement.void
prepareExecuteNoSelect()
Pre-build the SQL call from the statement.void
prepareExecuteSelect()
Pre-build the SQL call from the statement.void
prepareInsertObject()
Pre-build the SQL call from the statement.void
prepareSelectAllRows()
Pre-build the SQL call from the statement.void
prepareSelectOneRow()
Pre-build the SQL call from the statement.void
prepareUpdateAll()
Pre-build the SQL call from the statement.void
prepareUpdateObject()
Pre-build the SQL call from the statement.protected void
setCallFromStatement()
Pre-build the SQL call from the statement.void
setSQLStatement(SQLStatement statement)
Set the sqlStatementprotected void
setSQLStatements(Vector sqlStatements)
Normally only a single statement is used, however multiple table may require multiple statements on write.void
trimFieldsForInsert()
INTERNAL Remove a potential sequence number field and invoke the ReturningPolicy trimModifyRowsForInsert methodInteger
updateObject()
Update the object-
Methods inherited from class org.eclipse.persistence.internal.queries.CallQueryMechanism
configureDatabaseCall, getDatabaseCall, prepareCall, prepareExecute, prepareJoining, setCallHasCustomSQLArguments, unprepare, updateForeignKeyFieldAfterInsert, updateForeignKeyFieldBeforeDelete
-
Methods inherited from class org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism
addCall, computeAndSetItemOffset, cursorSelectAllRows, deleteAll, deleteAllUsingTempTables, execute, executeCall, executeCall, executeDeferredCall, executeNoSelectCall, executeSelect, executeSelectCall, getCall, getCalls, hasMultipleCalls, prepareReportQueryItems, prepareReportQuerySelectAllRows, prepareReportQuerySubSelect, selectAllReportQueryRows, selectAllRows, selectOneRow, selectResultSet, selectRowForDoesExist, setCall, setCalls, updateAll, updateAllUsingTempTables
-
Methods inherited from class org.eclipse.persistence.internal.queries.DatabaseQueryMechanism
addWriteLockFieldForInsert, buildSelectionCriteria, checkCacheForObject, clone, executeWrite, executeWriteWithChangeSet, getDescriptor, getExecutionSession, getModifyRow, getQuery, getReadObjectQuery, getSession, getTranslationRow, getWriteObjectQuery, insertObjectForWrite, isExpressionQueryMechanism, isJPQLCallQueryMechanism, isQueryByExampleMechanism, performUserDefinedInsert, performUserDefinedUpdate, performUserDefinedWrite, registerObjectInIdentityMap, setQuery, shallowInsertObjectForWrite, updateForeignKeyFieldAfterInsert, updateObjectAndRowWithReturnRow, updateObjectAndRowWithSequenceNumber, updateObjectForWrite, updateObjectForWriteWithChangeSet
-
-
-
-
Field Detail
-
sqlStatement
protected SQLStatement sqlStatement
-
sqlStatements
protected Vector sqlStatements
Normally only a single statement is used, however multiple table may require multiple statements on write.
-
-
Constructor Detail
-
StatementQueryMechanism
public StatementQueryMechanism()
-
StatementQueryMechanism
public StatementQueryMechanism(DatabaseQuery query)
INTERNAL: Return a new mechanism for the query- Parameters:
query
- - owner of mechanism
-
StatementQueryMechanism
public StatementQueryMechanism(DatabaseQuery query, SQLStatement statement)
Return a new mechanism for the query- Parameters:
query
- - owner of mechanismstatement
- - sql statement
-
-
Method Detail
-
clearStatement
public void clearStatement()
The statement is no longer require after prepare so can be released.
-
clone
public DatabaseQueryMechanism clone(DatabaseQuery queryClone)
Clone the mechanism for the specified query clone.- Overrides:
clone
in classDatasourceCallQueryMechanism
-
deleteObject
public Integer deleteObject() throws DatabaseException
INTERNAL: delete the object- Overrides:
deleteObject
in classDatasourceCallQueryMechanism
- Returns:
- the row count.
- Throws:
DatabaseException
- - an error has occurred on the database.
-
executeNoSelect
public Integer executeNoSelect() throws DatabaseException
Update the object- Overrides:
executeNoSelect
in classDatasourceCallQueryMechanism
- Returns:
- the row count.
- Throws:
DatabaseException
- - an error has occurred on the database.
-
getSelectionCriteria
public Expression getSelectionCriteria()
Return the selection criteria for the statement.- Overrides:
getSelectionCriteria
in classDatabaseQueryMechanism
-
getSQLStatement
public SQLStatement getSQLStatement()
INTERNAL: Return the sqlStatement
-
getSQLStatements
public Vector getSQLStatements()
Normally only a single statement is used, however multiple table may require multiple statements on write. This is lazy initialied to conserv space.
-
hasMultipleStatements
public boolean hasMultipleStatements()
Normally only a single statement is used, however multiple table may require multiple statements on write. This is lazy initialized to conserve space.
-
insertObject
public void insertObject() throws DatabaseException
Insert the object- Overrides:
insertObject
in classDatasourceCallQueryMechanism
- Throws:
DatabaseException
- - an error has occurred on the database.
-
insertObject
public void insertObject(boolean reprepare)
Insert the object if the reprepare flag is set, first reprepare the query. Added for CR#3237- Overrides:
insertObject
in classDatabaseQueryMechanism
- Parameters:
reprepare
- whether to reprepare the query.
-
trimFieldsForInsert
public void trimFieldsForInsert()
INTERNAL Remove a potential sequence number field and invoke the ReturningPolicy trimModifyRowsForInsert method
-
isCallQueryMechanism
public boolean isCallQueryMechanism()
Return true if this is a call query mechanism- Overrides:
isCallQueryMechanism
in classDatasourceCallQueryMechanism
-
isStatementQueryMechanism
public boolean isStatementQueryMechanism()
Return true if this is a statement query mechanism- Overrides:
isStatementQueryMechanism
in classDatabaseQueryMechanism
-
prepare
public void prepare()
INTERNAL: This is different from 'prepareForExecution' in that this is called on the original query, and the other is called on the copy of the query. This query is copied for concurrency so this prepare can only setup things that will apply to any future execution of this query.- Overrides:
prepare
in classDatasourceCallQueryMechanism
-
prepareCursorSelectAllRows
public void prepareCursorSelectAllRows()
Pre-build the SQL call from the statement.- Overrides:
prepareCursorSelectAllRows
in classCallQueryMechanism
-
prepareDeleteAll
public void prepareDeleteAll()
Pre-build the SQL call from the statement.- Overrides:
prepareDeleteAll
in classCallQueryMechanism
-
prepareDeleteObject
public void prepareDeleteObject()
Pre-build the SQL call from the statement.- Overrides:
prepareDeleteObject
in classCallQueryMechanism
-
prepareDoesExist
public void prepareDoesExist(DatabaseField field)
Pre-build the SQL call from the statement.- Overrides:
prepareDoesExist
in classCallQueryMechanism
-
prepareExecuteNoSelect
public void prepareExecuteNoSelect()
Pre-build the SQL call from the statement.- Overrides:
prepareExecuteNoSelect
in classDatasourceCallQueryMechanism
-
prepareExecuteSelect
public void prepareExecuteSelect()
Pre-build the SQL call from the statement.- Overrides:
prepareExecuteSelect
in classCallQueryMechanism
-
prepareInsertObject
public void prepareInsertObject()
Pre-build the SQL call from the statement.- Overrides:
prepareInsertObject
in classDatasourceCallQueryMechanism
-
prepareSelectAllRows
public void prepareSelectAllRows()
Pre-build the SQL call from the statement.- Overrides:
prepareSelectAllRows
in classCallQueryMechanism
-
prepareSelectOneRow
public void prepareSelectOneRow()
Pre-build the SQL call from the statement.- Overrides:
prepareSelectOneRow
in classCallQueryMechanism
-
prepareUpdateObject
public void prepareUpdateObject()
Pre-build the SQL call from the statement.- Overrides:
prepareUpdateObject
in classCallQueryMechanism
-
prepareUpdateAll
public void prepareUpdateAll()
Pre-build the SQL call from the statement.- Overrides:
prepareUpdateAll
in classDatasourceCallQueryMechanism
-
setCallFromStatement
protected void setCallFromStatement()
Pre-build the SQL call from the statement.
-
setSQLStatement
public void setSQLStatement(SQLStatement statement)
Set the sqlStatement
-
setSQLStatements
protected void setSQLStatements(Vector sqlStatements)
Normally only a single statement is used, however multiple table may require multiple statements on write. This is lazy initialized to conserve space.
-
updateObject
public Integer updateObject() throws DatabaseException
Update the object- Overrides:
updateObject
in classDatasourceCallQueryMechanism
- Returns:
- the row count.
- Throws:
DatabaseException
- - an error has occurred on the database.
-
-