Class DeleteRequest
java.lang.Object
org.datanucleus.store.rdbms.request.Request
org.datanucleus.store.rdbms.request.DeleteRequest
Class to provide a means of deletion of records from an RDBMS.
Extends basic request class implementing the execute method to do a JDBC delete operation.
Provides a version check for optimistic handling.
The SQL will be of the form
DELETE FROM TBL_NAME WHERE id1=? AND id2=?or, if "soft delete" is being used for this type, then
UPDATE TBL_NAME SET DELETE_COL=TRUE WHERE id1=? AND id2=?
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate class
Mapping Consumer used for generating the DELETE statement for an object in a table. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.datanucleus.metadata.AbstractClassMetaData
MetaData for the class.private final String
Statement for deleting the object from the datastore.private final String
Statement for deleting the object from the datastore (optimistic txns).private final List
<MappingCallbacks> private StatementMappingDefinition
the index for the expression(s) in the delete statement.private StatementMappingIndex
StatementExpressionIndex for multitenancy.private final org.datanucleus.metadata.AbstractMemberMetaData[]
1-1 bidir non-owner fields that are reachable (but not updated) and have no datastore column.private final String
Statement for soft-deleting the object from the datastore.protected boolean
Whether we should make checks on optimistic version before updating.protected org.datanucleus.metadata.VersionMetaData
MetaData for the version handling.private final int[]
PK fields to be provided in defining the record to be deleted (app identity cases). -
Constructor Summary
ConstructorsConstructorDescriptionDeleteRequest
(DatastoreClass table, org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.ClassLoaderResolver clr) Constructor, taking the table. -
Method Summary
Modifier and TypeMethodDescriptionvoid
execute
(org.datanucleus.state.DNStateManager sm) Method performing the deletion of the record from the datastore.private void
updateOneToOneBidirectionalOwnerObjectForField
(org.datanucleus.state.DNStateManager sm, org.datanucleus.metadata.AbstractMemberMetaData mmd) Method to update any 1-1 bidir non-owner fields where the foreign-key is stored in the other object.
-
Field Details
-
mappingCallbacks
-
deleteStmt
Statement for deleting the object from the datastore. -
deleteStmtOptimistic
Statement for deleting the object from the datastore (optimistic txns). -
softDeleteStmt
Statement for soft-deleting the object from the datastore. -
mappingStatementIndex
the index for the expression(s) in the delete statement. -
multitenancyStatementMapping
StatementExpressionIndex for multitenancy. -
whereFieldNumbers
private final int[] whereFieldNumbersPK fields to be provided in defining the record to be deleted (app identity cases). -
oneToOneNonOwnerFields
private final org.datanucleus.metadata.AbstractMemberMetaData[] oneToOneNonOwnerFields1-1 bidir non-owner fields that are reachable (but not updated) and have no datastore column. -
cmd
protected org.datanucleus.metadata.AbstractClassMetaData cmdMetaData for the class. -
versionMetaData
protected org.datanucleus.metadata.VersionMetaData versionMetaDataMetaData for the version handling. -
versionChecks
protected boolean versionChecksWhether we should make checks on optimistic version before updating.
-
-
Constructor Details
-
DeleteRequest
public DeleteRequest(DatastoreClass table, org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.ClassLoaderResolver clr) Constructor, taking the table. Uses the structure of the datastore table to build a basic query.- Parameters:
table
- The Class Table representing the datastore table to delete.cmd
- ClassMetaData of objects being deletedclr
- ClassLoader resolver
-
-
Method Details
-
execute
public void execute(org.datanucleus.state.DNStateManager sm) Method performing the deletion of the record from the datastore. Takes the constructed deletion query and populates with the specific record information. -
updateOneToOneBidirectionalOwnerObjectForField
private void updateOneToOneBidirectionalOwnerObjectForField(org.datanucleus.state.DNStateManager sm, org.datanucleus.metadata.AbstractMemberMetaData mmd) Method to update any 1-1 bidir non-owner fields where the foreign-key is stored in the other object.- Parameters:
sm
- StateManager of this objectmmd
- MetaData for field that has related (owner) objects
-