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 classMapping Consumer used for generating the DELETE statement for an object in a table. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.datanucleus.metadata.AbstractClassMetaDataMetaData for the class.private final StringStatement for deleting the object from the datastore.private final StringStatement for deleting the object from the datastore (optimistic txns).private final List<MappingCallbacks> private StatementMappingDefinitionthe index for the expression(s) in the delete statement.private StatementMappingIndexStatementExpressionIndex 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 StringStatement for soft-deleting the object from the datastore.protected booleanWhether we should make checks on optimistic version before updating.protected org.datanucleus.metadata.VersionMetaDataMetaData 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 TypeMethodDescriptionvoidexecute(org.datanucleus.state.DNStateManager sm) Method performing the deletion of the record from the datastore.private voidupdateOneToOneBidirectionalOwnerObjectForField(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
-