Class BatchDbSqlSession
- java.lang.Object
-
- org.camunda.bpm.engine.impl.db.AbstractPersistenceSession
-
- org.camunda.bpm.engine.impl.db.sql.DbSqlSession
-
- org.camunda.bpm.engine.impl.db.sql.BatchDbSqlSession
-
- All Implemented Interfaces:
PersistenceSession,Session
public class BatchDbSqlSession extends DbSqlSession
For mybatisExecutorType.BATCH
-
-
Field Summary
-
Fields inherited from class org.camunda.bpm.engine.impl.db.sql.DbSqlSession
connectionMetadataDefaultCatalog, connectionMetadataDefaultSchema, dbSqlSessionFactory, JDBC_METADATA_TABLE_TYPES, LOG, PG_JDBC_METADATA_TABLE_TYPES, sqlSession
-
Fields inherited from class org.camunda.bpm.engine.impl.db.AbstractPersistenceSession
listeners
-
-
Constructor Summary
Constructors Constructor Description BatchDbSqlSession(DbSqlSessionFactory dbSqlSessionFactory)BatchDbSqlSession(DbSqlSessionFactory dbSqlSessionFactory, java.sql.Connection connection, java.lang.String catalog, java.lang.String schema)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddeleteBulk(DbBulkOperation operation)protected voiddeleteEntity(DbEntityOperation operation)FlushResultexecuteDbOperations(java.util.List<DbOperation> operations)Attempts to perform the operations in order and returns a flush result.protected voidexecuteSelectForUpdate(java.lang.String statement, java.lang.Object parameter)protected FlushResultpostProcessBatchFailure(java.util.List<DbOperation> operations, org.apache.ibatis.exceptions.PersistenceException exception)protected FlushResultpostProcessBatchSuccess(java.util.List<DbOperation> operations, java.util.List<org.apache.ibatis.executor.BatchResult> batchResults)protected voidpostProcessJdbcBatchResult(java.util.Iterator<DbOperation> operationsIt, int[] statementResults, org.apache.ibatis.exceptions.PersistenceException failure, java.util.List<DbOperation> failedOperations)This method can be called with three cases: Case 1: Success.protected voidpostProcessOperationPerformed(DbOperation operation, int rowsAffected, org.apache.ibatis.exceptions.PersistenceException failure)protected booleanrequiresAffectedRows(DbOperationType operationType)protected voidupdateBulk(DbBulkOperation operation)protected voidupdateEntity(DbEntityOperation operation)-
Methods inherited from class org.camunda.bpm.engine.impl.db.sql.DbSqlSession
addSqlStatementPiece, bulkDeletePerformed, bulkOperationPerformed, bulkUpdatePerformed, close, commit, configureFailedDbEntityOperation, dbSchemaCheckVersion, dbSchemaCreateCmmn, dbSchemaCreateCmmnHistory, dbSchemaCreateDmn, dbSchemaCreateDmnHistory, dbSchemaCreateEngine, dbSchemaCreateHistory, dbSchemaCreateIdentity, dbSchemaDropCmmn, dbSchemaDropCmmnHistory, dbSchemaDropDmn, dbSchemaDropDmnHistory, dbSchemaDropEngine, dbSchemaDropHistory, dbSchemaDropIdentity, entityDeletePerformed, entityInsertPerformed, entityUpdatePerformed, executeDelete, executeInsertEntity, executeMandatorySchemaResource, executeNonEmptyUpdateStmt, executeSchemaResource, executeSchemaResource, executeSelectList, executeUpdate, flush, flushBatchOperations, flushOperations, getDbSqlSessionFactory, getDbVersion, getResourceForDbOperation, getSqlSession, getTableNamesPresent, getTablesPresentInOracleDatabase, getTableTypes, insertEntity, isCmmnHistoryTablePresent, isCmmnTablePresent, isConcurrentModificationException, isCrdbConcurrencyConflict, isCrdbConcurrencyConflictOnCommit, isDmnHistoryTablePresent, isDmnTablePresent, isEngineTablePresent, isHistoryTablePresent, isIdentityTablePresent, isMissingTablesException, isTablePresent, lock, prependDatabaseTablePrefix, readNextTrimmedLine, rollback, selectById, selectList, selectOne, update
-
Methods inherited from class org.camunda.bpm.engine.impl.db.AbstractPersistenceSession
addEntityLoadListener, dbSchemaCreate, dbSchemaDrop, dbSchemaPrune, dbSchemaUpdate, executeDbOperation, fireEntityLoaded
-
-
-
-
Constructor Detail
-
BatchDbSqlSession
public BatchDbSqlSession(DbSqlSessionFactory dbSqlSessionFactory)
-
BatchDbSqlSession
public BatchDbSqlSession(DbSqlSessionFactory dbSqlSessionFactory, java.sql.Connection connection, java.lang.String catalog, java.lang.String schema)
-
-
Method Detail
-
executeDbOperations
public FlushResult executeDbOperations(java.util.List<DbOperation> operations)
Description copied from interface:PersistenceSessionAttempts to perform the operations in order and returns a flush result. The result indicates if there are operations that were not successful (via
FlushResult.getFailedOperations()and if some operations were not executed (viaFlushResult.getRemainingOperations(). The remaining operations must be a suffix of the parameter (e.g. for operations [a, b, c, d], [c, d] is a valid list of remaining operations, [b, c] is not).This method modifies the operation's state, i.e.
DbOperation.getState()will be updated by calling this method:- Successful operations:
DbOperation.State.APPLIED - Failed operations:
DbOperation.State.FAILED_ERRORorDbOperation.State.FAILED_CONCURRENT_MODIFICATION. - Remaining operations:
DbOperation.State.NOT_APPLIED
- Successful operations:
-
postProcessBatchSuccess
protected FlushResult postProcessBatchSuccess(java.util.List<DbOperation> operations, java.util.List<org.apache.ibatis.executor.BatchResult> batchResults)
-
postProcessBatchFailure
protected FlushResult postProcessBatchFailure(java.util.List<DbOperation> operations, org.apache.ibatis.exceptions.PersistenceException exception)
-
postProcessJdbcBatchResult
protected void postProcessJdbcBatchResult(java.util.Iterator<DbOperation> operationsIt, int[] statementResults, org.apache.ibatis.exceptions.PersistenceException failure, java.util.List<DbOperation> failedOperations)
This method can be called with three cases:
- Case 1: Success. statementResults contains the number of affected rows for all operations.
- Case 2: Failure. statementResults contains the number of affected rows for all successful operations that were executed before the failed operation.
- Case 3: Failure. statementResults contains the number of affected rows for all operations of the batch, i.e. further statements were executed after the first failed statement.
See
BatchUpdateException.getUpdateCounts()for the specification of cases 2 and 3.
-
requiresAffectedRows
protected boolean requiresAffectedRows(DbOperationType operationType)
-
postProcessOperationPerformed
protected void postProcessOperationPerformed(DbOperation operation, int rowsAffected, org.apache.ibatis.exceptions.PersistenceException failure)
-
updateEntity
protected void updateEntity(DbEntityOperation operation)
- Specified by:
updateEntityin classAbstractPersistenceSession
-
updateBulk
protected void updateBulk(DbBulkOperation operation)
- Specified by:
updateBulkin classAbstractPersistenceSession
-
deleteBulk
protected void deleteBulk(DbBulkOperation operation)
- Specified by:
deleteBulkin classAbstractPersistenceSession
-
deleteEntity
protected void deleteEntity(DbEntityOperation operation)
- Specified by:
deleteEntityin classAbstractPersistenceSession
-
executeSelectForUpdate
protected void executeSelectForUpdate(java.lang.String statement, java.lang.Object parameter)- Specified by:
executeSelectForUpdatein classDbSqlSession
-
-