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 void
deleteBulk(DbBulkOperation operation)
protected void
deleteEntity(DbEntityOperation operation)
FlushResult
executeDbOperations(java.util.List<DbOperation> operations)
Attempts to perform the operations in order and returns a flush result.protected void
executeSelectForUpdate(java.lang.String statement, java.lang.Object parameter)
protected FlushResult
postProcessBatchFailure(java.util.List<DbOperation> operations, org.apache.ibatis.exceptions.PersistenceException exception)
protected FlushResult
postProcessBatchSuccess(java.util.List<DbOperation> operations, java.util.List<org.apache.ibatis.executor.BatchResult> batchResults)
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.protected void
postProcessOperationPerformed(DbOperation operation, int rowsAffected, org.apache.ibatis.exceptions.PersistenceException failure)
protected boolean
requiresAffectedRows(DbOperationType operationType)
protected void
updateBulk(DbBulkOperation operation)
protected void
updateEntity(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:PersistenceSession
Attempts 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_ERROR
orDbOperation.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:
updateEntity
in classAbstractPersistenceSession
-
updateBulk
protected void updateBulk(DbBulkOperation operation)
- Specified by:
updateBulk
in classAbstractPersistenceSession
-
deleteBulk
protected void deleteBulk(DbBulkOperation operation)
- Specified by:
deleteBulk
in classAbstractPersistenceSession
-
deleteEntity
protected void deleteEntity(DbEntityOperation operation)
- Specified by:
deleteEntity
in classAbstractPersistenceSession
-
executeSelectForUpdate
protected void executeSelectForUpdate(java.lang.String statement, java.lang.Object parameter)
- Specified by:
executeSelectForUpdate
in classDbSqlSession
-
-