Class DbEntityManager
- java.lang.Object
-
- org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager
-
- All Implemented Interfaces:
EntityLoadListener,Session
public class DbEntityManager extends java.lang.Object implements Session, EntityLoadListener
- Author:
- Daniel Meyer
-
-
Field Summary
Fields Modifier and Type Field Description static intBATCH_SIZEprotected DbEntityCachedbEntityCacheprotected DbOperationManagerdbOperationManagerprotected IdGeneratoridGeneratorprotected booleanisIgnoreForeignKeysForNextFlushprotected static EnginePersistenceLoggerLOGprotected java.util.List<OptimisticLockingListener>optimisticLockingListenersprotected PersistenceSessionpersistenceSessionprotected static java.lang.StringTOGGLE_FOREIGN_KEY_STMT
-
Constructor Summary
Constructors Constructor Description DbEntityManager(IdGenerator idGenerator, PersistenceSession persistenceSession)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected DbEntitycacheFilter(DbEntity persistentObject)returns the object in the cache.protected booleancanIgnoreHistoryModificationFailure(DbOperation dbOperation)Determines if a failed database operation (OptimisticLockingException) on a Historic entity can be ignored.voidclose()booleancontains(DbEntity dbEntity)CaseDefinitionQueryImplcreateCaseDefinitionQuery()DeploymentQueryImplcreateDeploymentQuery()ExecutionQueryImplcreateExecutionQuery()GroupQueryImplcreateGroupQuery()HistoricActivityInstanceQueryImplcreateHistoricActivityInstanceQuery()HistoricDetailQueryImplcreateHistoricDetailQuery()HistoricJobLogQueryImplcreateHistoricJobLogQuery()HistoricProcessInstanceQueryImplcreateHistoricProcessInstanceQuery()HistoricTaskInstanceQueryImplcreateHistoricTaskInstanceQuery()HistoricVariableInstanceQueryImplcreateHistoricVariableInstanceQuery()JobQueryImplcreateJobQuery()ProcessDefinitionQueryImplcreateProcessDefinitionQuery()ProcessInstanceQueryImplcreateProcessInstanceQuery()TaskQueryImplcreateTaskQuery()UserQueryImplcreateUserQuery()voiddelete(java.lang.Class<? extends DbEntity> entityType, java.lang.String statement, java.lang.Object parameter)voiddelete(DbEntity dbEntity)DbBulkOperationdeletePreserveOrder(java.lang.Class<? extends DbEntity> entityType, java.lang.String statement, java.lang.Object parameter)Several delete operations added by this method will be executed preserving the order of method calls, no matter what entity type they refer to.protected voidensureHasId(DbEntity dbEntity)protected java.util.ListfilterLoadedObjects(java.util.List<java.lang.Object> loadedObjects)voidflush()protected voidflushCachedEntity(CachedDbEntity cachedDbEntity)protected voidflushDbOperationManager()protected voidflushDbOperations(java.util.List<DbOperation> operationsToFlush, java.util.List<DbOperation> allOperations)voidflushEntity(DbEntity entity)protected voidflushEntityCache()Flushes the entity cache: Depending on the entity state, the requiredDbOperationis performed and the cache is updated.voidforceUpdate(DbEntity entity)<T extends DbEntity>
java.util.List<T>getCachedEntitiesByType(java.lang.Class<T> type)<T extends DbEntity>
TgetCachedEntity(java.lang.Class<T> type, java.lang.String id)DbEntityCachegetDbEntityCache()DbOperationManagergetDbOperationManager()java.util.List<java.lang.String>getTableNamesPresentInDatabase()protected voidhandleConcurrentModification(DbOperation dbOperation)Decides if an operation that failed for concurrent modifications can be tolerated, or ifOptimisticLockingExceptionshould be raisedprotected voidhandleConcurrentModificationCrdb(DbOperation dbOperation)protected voidinitializeEntityCache()protected voidinitializeOperationManager()voidinsert(DbEntity dbEntity)booleanisDeleted(DbEntity object)booleanisDirty(DbEntity dbEntity)protected booleanisHistoricByteArray(DbEntity dbEntity)voidlock(java.lang.String statement)voidlock(java.lang.String statement, java.lang.Object parameter)voidmerge(DbEntity dbEntity)voidonEntityLoaded(DbEntity entity)protected DbBulkOperationperformBulkOperation(java.lang.Class<? extends DbEntity> entityType, java.lang.String statement, java.lang.Object parameter, DbOperationType operationType)protected DbBulkOperationperformBulkOperationPreserveOrder(java.lang.Class<? extends DbEntity> entityType, java.lang.String statement, java.lang.Object parameter, DbOperationType operationType)protected voidperformEntityOperation(CachedDbEntity cachedDbEntity, DbOperationType type)<T extends DbEntity>
java.util.List<T>pruneDeletedEntities(java.util.List<T> listToPrune)voidregisterOptimisticLockingListener(OptimisticLockingListener optimisticLockingListener)booleanselectBoolean(java.lang.String statement, java.lang.Object parameter)<T extends DbEntity>
TselectById(java.lang.Class<T> entityClass, java.lang.String id)java.util.ListselectList(java.lang.String statement)java.util.ListselectList(java.lang.String statement, java.lang.Object parameter)java.util.ListselectList(java.lang.String statement, java.lang.Object parameter, int firstResult, int maxResults)java.util.ListselectList(java.lang.String statement, java.lang.Object parameter, Page page)java.util.ListselectList(java.lang.String statement, ListQueryParameterObject parameter)java.util.ListselectList(java.lang.String statement, ListQueryParameterObject parameter, Page page)java.util.ListselectListWithRawParameter(java.lang.String statement, java.lang.Object parameter, int firstResult, int maxResults)java.lang.ObjectselectOne(java.lang.String statement, java.lang.Object parameter)voidsetDbEntityCache(DbEntityCache dbEntityCache)voidsetDbOperationManager(DbOperationManager operationManager)voidsetIgnoreForeignKeysForNextFlush(boolean ignoreForeignKeysForNextFlush)voidundoDelete(DbEntity entity)voidupdate(java.lang.Class<? extends DbEntity> entityType, java.lang.String statement, java.lang.Object parameter)voidupdatePreserveOrder(java.lang.Class<? extends DbEntity> entityType, java.lang.String statement, java.lang.Object parameter)Several update operations added by this method will be executed preserving the order of method calls, no matter what entity type they refer to.protected voidvalidateId(DbEntity dbEntity)
-
-
-
Field Detail
-
LOG
protected static final EnginePersistenceLogger LOG
-
TOGGLE_FOREIGN_KEY_STMT
protected static final java.lang.String TOGGLE_FOREIGN_KEY_STMT
- See Also:
- Constant Field Values
-
BATCH_SIZE
public static final int BATCH_SIZE
- See Also:
- Constant Field Values
-
optimisticLockingListeners
protected java.util.List<OptimisticLockingListener> optimisticLockingListeners
-
idGenerator
protected IdGenerator idGenerator
-
dbEntityCache
protected DbEntityCache dbEntityCache
-
dbOperationManager
protected DbOperationManager dbOperationManager
-
persistenceSession
protected PersistenceSession persistenceSession
-
isIgnoreForeignKeysForNextFlush
protected boolean isIgnoreForeignKeysForNextFlush
-
-
Constructor Detail
-
DbEntityManager
public DbEntityManager(IdGenerator idGenerator, PersistenceSession persistenceSession)
-
-
Method Detail
-
initializeOperationManager
protected void initializeOperationManager()
-
initializeEntityCache
protected void initializeEntityCache()
-
selectList
public java.util.List selectList(java.lang.String statement)
-
selectList
public java.util.List selectList(java.lang.String statement, java.lang.Object parameter)
-
selectList
public java.util.List selectList(java.lang.String statement, java.lang.Object parameter, Page page)
-
selectList
public java.util.List selectList(java.lang.String statement, ListQueryParameterObject parameter, Page page)
-
selectList
public java.util.List selectList(java.lang.String statement, java.lang.Object parameter, int firstResult, int maxResults)
-
selectList
public java.util.List selectList(java.lang.String statement, ListQueryParameterObject parameter)
-
selectListWithRawParameter
public java.util.List selectListWithRawParameter(java.lang.String statement, java.lang.Object parameter, int firstResult, int maxResults)
-
selectOne
public java.lang.Object selectOne(java.lang.String statement, java.lang.Object parameter)
-
selectBoolean
public boolean selectBoolean(java.lang.String statement, java.lang.Object parameter)
-
selectById
public <T extends DbEntity> T selectById(java.lang.Class<T> entityClass, java.lang.String id)
-
getCachedEntity
public <T extends DbEntity> T getCachedEntity(java.lang.Class<T> type, java.lang.String id)
-
getCachedEntitiesByType
public <T extends DbEntity> java.util.List<T> getCachedEntitiesByType(java.lang.Class<T> type)
-
filterLoadedObjects
protected java.util.List filterLoadedObjects(java.util.List<java.lang.Object> loadedObjects)
-
cacheFilter
protected DbEntity cacheFilter(DbEntity persistentObject)
returns the object in the cache. if this object was loaded before, then the original object is returned.
-
onEntityLoaded
public void onEntityLoaded(DbEntity entity)
- Specified by:
onEntityLoadedin interfaceEntityLoadListener
-
lock
public void lock(java.lang.String statement)
-
lock
public void lock(java.lang.String statement, java.lang.Object parameter)
-
isDirty
public boolean isDirty(DbEntity dbEntity)
-
setIgnoreForeignKeysForNextFlush
public void setIgnoreForeignKeysForNextFlush(boolean ignoreForeignKeysForNextFlush)
-
flushDbOperationManager
protected void flushDbOperationManager()
-
flushDbOperations
protected void flushDbOperations(java.util.List<DbOperation> operationsToFlush, java.util.List<DbOperation> allOperations)
-
flushEntity
public void flushEntity(DbEntity entity)
-
handleConcurrentModification
protected void handleConcurrentModification(DbOperation dbOperation)
Decides if an operation that failed for concurrent modifications can be tolerated, or ifOptimisticLockingExceptionshould be raised- Parameters:
dbOperation-- Throws:
OptimisticLockingException- if there is no handler for the failure
-
handleConcurrentModificationCrdb
protected void handleConcurrentModificationCrdb(DbOperation dbOperation)
-
canIgnoreHistoryModificationFailure
protected boolean canIgnoreHistoryModificationFailure(DbOperation dbOperation)
Determines if a failed database operation (OptimisticLockingException) on a Historic entity can be ignored.- Parameters:
dbOperation- that failed- Returns:
- true if the failure can be ignored
-
isHistoricByteArray
protected boolean isHistoricByteArray(DbEntity dbEntity)
-
flushEntityCache
protected void flushEntityCache()
Flushes the entity cache: Depending on the entity state, the requiredDbOperationis performed and the cache is updated.
-
flushCachedEntity
protected void flushCachedEntity(CachedDbEntity cachedDbEntity)
-
insert
public void insert(DbEntity dbEntity)
-
merge
public void merge(DbEntity dbEntity)
-
forceUpdate
public void forceUpdate(DbEntity entity)
-
delete
public void delete(DbEntity dbEntity)
-
undoDelete
public void undoDelete(DbEntity entity)
-
update
public void update(java.lang.Class<? extends DbEntity> entityType, java.lang.String statement, java.lang.Object parameter)
-
updatePreserveOrder
public void updatePreserveOrder(java.lang.Class<? extends DbEntity> entityType, java.lang.String statement, java.lang.Object parameter)
Several update operations added by this method will be executed preserving the order of method calls, no matter what entity type they refer to. They will though be executed after all "not-bulk" operations (e.g.insert(DbEntity)ormerge(DbEntity)) and after those updates added byupdate(Class, String, Object).- Parameters:
entityType-statement-parameter-
-
delete
public void delete(java.lang.Class<? extends DbEntity> entityType, java.lang.String statement, java.lang.Object parameter)
-
deletePreserveOrder
public DbBulkOperation deletePreserveOrder(java.lang.Class<? extends DbEntity> entityType, java.lang.String statement, java.lang.Object parameter)
Several delete operations added by this method will be executed preserving the order of method calls, no matter what entity type they refer to. They will though be executed after all "not-bulk" operations (e.g.insert(DbEntity)ormerge(DbEntity)) and after those deletes added bydelete(Class, String, Object).- Parameters:
entityType-statement-parameter-- Returns:
- delete operation
-
performBulkOperation
protected DbBulkOperation performBulkOperation(java.lang.Class<? extends DbEntity> entityType, java.lang.String statement, java.lang.Object parameter, DbOperationType operationType)
-
performBulkOperationPreserveOrder
protected DbBulkOperation performBulkOperationPreserveOrder(java.lang.Class<? extends DbEntity> entityType, java.lang.String statement, java.lang.Object parameter, DbOperationType operationType)
-
performEntityOperation
protected void performEntityOperation(CachedDbEntity cachedDbEntity, DbOperationType type)
-
isDeleted
public boolean isDeleted(DbEntity object)
-
ensureHasId
protected void ensureHasId(DbEntity dbEntity)
-
validateId
protected void validateId(DbEntity dbEntity)
-
pruneDeletedEntities
public <T extends DbEntity> java.util.List<T> pruneDeletedEntities(java.util.List<T> listToPrune)
-
contains
public boolean contains(DbEntity dbEntity)
-
getDbOperationManager
public DbOperationManager getDbOperationManager()
-
setDbOperationManager
public void setDbOperationManager(DbOperationManager operationManager)
-
getDbEntityCache
public DbEntityCache getDbEntityCache()
-
setDbEntityCache
public void setDbEntityCache(DbEntityCache dbEntityCache)
-
createDeploymentQuery
public DeploymentQueryImpl createDeploymentQuery()
-
createProcessDefinitionQuery
public ProcessDefinitionQueryImpl createProcessDefinitionQuery()
-
createCaseDefinitionQuery
public CaseDefinitionQueryImpl createCaseDefinitionQuery()
-
createProcessInstanceQuery
public ProcessInstanceQueryImpl createProcessInstanceQuery()
-
createExecutionQuery
public ExecutionQueryImpl createExecutionQuery()
-
createTaskQuery
public TaskQueryImpl createTaskQuery()
-
createJobQuery
public JobQueryImpl createJobQuery()
-
createHistoricProcessInstanceQuery
public HistoricProcessInstanceQueryImpl createHistoricProcessInstanceQuery()
-
createHistoricActivityInstanceQuery
public HistoricActivityInstanceQueryImpl createHistoricActivityInstanceQuery()
-
createHistoricTaskInstanceQuery
public HistoricTaskInstanceQueryImpl createHistoricTaskInstanceQuery()
-
createHistoricDetailQuery
public HistoricDetailQueryImpl createHistoricDetailQuery()
-
createHistoricVariableInstanceQuery
public HistoricVariableInstanceQueryImpl createHistoricVariableInstanceQuery()
-
createHistoricJobLogQuery
public HistoricJobLogQueryImpl createHistoricJobLogQuery()
-
createUserQuery
public UserQueryImpl createUserQuery()
-
createGroupQuery
public GroupQueryImpl createGroupQuery()
-
registerOptimisticLockingListener
public void registerOptimisticLockingListener(OptimisticLockingListener optimisticLockingListener)
-
getTableNamesPresentInDatabase
public java.util.List<java.lang.String> getTableNamesPresentInDatabase()
-
-