org.camunda.bpm.engine.impl.db
Class DbSqlSession

java.lang.Object
  extended by org.camunda.bpm.engine.impl.db.DbSqlSession
All Implemented Interfaces:
Session

public class DbSqlSession
extends Object
implements Session

responsibilities: - delayed flushing of inserts updates and deletes - optional dirty checking - db specific statement name mapping

Author:
Tom Baeyens, Joram Barrez

Nested Class Summary
 class DbSqlSession.BulkDeleteOperation
          Use this DbSqlSession.DeleteOperation to execute a dedicated delete statement.
 class DbSqlSession.BulkUpdateOperation
           
static class DbSqlSession.CachedObject
           
static interface DbSqlSession.DeleteOperation
           
 class DbSqlSession.DeletePersistentObjectOperation
          A DbSqlSession.DeleteOperation used when the persistent object has been fetched already.
 
Field Summary
protected  List<DbSqlSession.BulkUpdateOperation> bulkUpdates
           
protected  Map<Class<?>,Map<String,DbSqlSession.CachedObject>> cachedObjects
           
protected  String connectionMetadataDefaultCatalog
           
protected  String connectionMetadataDefaultSchema
           
protected  DbSqlSessionFactory dbSqlSessionFactory
           
protected  List<DbSqlSession.DeleteOperation> deleteOperations
           
protected  List<DeserializedObject> deserializedObjects
           
protected  List<PersistentObject> insertedObjects
           
static String[] JDBC_METADATA_TABLE_TYPES
           
protected  org.apache.ibatis.session.SqlSession sqlSession
           
protected  List<PersistentObject> updatedObjects
           
 
Constructor Summary
DbSqlSession(DbSqlSessionFactory dbSqlSessionFactory)
           
DbSqlSession(DbSqlSessionFactory dbSqlSessionFactory, Connection connection, String catalog, String schema)
           
 
Method Summary
 void addDeserializedObject(Object deserializedObject, byte[] serializedBytes, VariableInstanceEntity variableInstanceEntity)
           
protected  String addMissingComponent(String missingComponents, String component)
           
protected  String addSqlStatementPiece(String sqlStatement, String line)
           
protected  PersistentObject cacheFilter(PersistentObject persistentObject)
          returns the object in the cache.
protected
<T> T
cacheGet(Class<T> entityClass, String id)
           
protected  DbSqlSession.CachedObject cachePut(PersistentObject persistentObject, boolean storeState)
           
protected  void cacheRemove(Class<?> persistentObjectClass, String persistentObjectId)
           
 void checkDeploymentLockExists()
           
 void checkHistoryLevel()
           
 void close()
           
 void commit()
           
 CaseDefinitionQueryImpl createCaseDefinitionQuery()
           
 DeploymentQueryImpl createDeploymentQuery()
           
 ExecutionQueryImpl createExecutionQuery()
           
 GroupQueryImpl createGroupQuery()
           
 HistoricActivityInstanceQueryImpl createHistoricActivityInstanceQuery()
           
 HistoricDetailQueryImpl createHistoricDetailQuery()
           
 HistoricProcessInstanceQueryImpl createHistoricProcessInstanceQuery()
           
 HistoricTaskInstanceQueryImpl createHistoricTaskInstanceQuery()
           
 HistoricVariableInstanceQueryImpl createHistoricVariableInstanceQuery()
           
 JobQueryImpl createJobQuery()
           
 ProcessDefinitionQueryImpl createProcessDefinitionQuery()
           
 ProcessInstanceQueryImpl createProcessInstanceQuery()
           
 TaskQueryImpl createTaskQuery()
           
 UserQueryImpl createUserQuery()
           
 void dbCreateHistoryLevel()
           
 void dbSchemaCheckVersion()
           
 void dbSchemaCreate()
           
protected  void dbSchemaCreateCmmn()
           
protected  void dbSchemaCreateEngine()
           
protected  void dbSchemaCreateHistory()
           
protected  void dbSchemaCreateIdentity()
           
 void dbSchemaDrop()
           
 void dbSchemaPrune()
           
 String dbSchemaUpdate()
           
protected  void dbSchemaUpgrade(String component, String dbVersion)
           
 void delete(PersistentObject persistentObject)
           
 void delete(String statement, Object parameter)
           
 void executeMandatorySchemaResource(String operation, String component)
           
 void executeSchemaResource(String schemaFileResourceName)
           
 void executeSchemaResource(String operation, String component, String resourceName, boolean isOptional)
           
protected  List filterLoadedObjects(List<Object> loadedObjects)
           
<T> List<T>
findInCache(Class<T> entityClass)
           
<T> T
findInCache(Class<T> entityClass, String id)
           
protected  PersistentObject findInsertedObject(Class<?> persistenceObjectClass, String persistentObjectId)
           
 void flush()
           
protected  void flushBulkUpdates()
           
protected  void flushDeletes()
           
protected  void flushDeserializedObjects()
           
protected  void flushInserts()
           
protected  void flushUpdates(List<PersistentObject> updatedObjects)
           
 DbSqlSessionFactory getDbSqlSessionFactory()
           
protected  String getDbVersion()
           
 String getResourceForDbOperation(String directory, String operation, String component)
           
 org.apache.ibatis.session.SqlSession getSqlSession()
           
 List<PersistentObject> getUpdatedObjects()
           
 void insert(PersistentObject persistentObject)
           
 void insertAt(PersistentObject persistentObject, int index)
          Inserts a object at the given index in the insert objects list.
 void insertBefore(PersistentObject objectToInsert, PersistentObject referenceObject)
           
 boolean isCaseDefinitionTablePresent()
           
 boolean isEngineTablePresent()
           
 boolean isHistoryTablePresent()
           
 boolean isIdentityTablePresent()
           
 boolean isInsertedObject(PersistentObject persistentObject)
           
protected  boolean isMissingTablesException(Exception e)
           
protected  boolean isPersistentObjectDeleted(PersistentObject persistentObject)
           
 boolean isTablePresent(String tableName)
           
 boolean isUpdated(PersistentObject persistentObject)
           
 void lock(String statement)
           
 void performSchemaOperationsProcessEngineBuild()
           
 void performSchemaOperationsProcessEngineClose()
           
protected  String prependDatabaseTablePrefix(String tableName)
           
<T extends PersistentObject>
List<T>
pruneDeletedEntities(List<T> listToPrune)
           
protected  String readNextTrimmedLine(BufferedReader reader)
           
protected  void removeUnnecessaryOperations()
           
 void rollback()
           
 boolean selectBoolean(String statement, Object parameter)
           
<T extends PersistentObject>
T
selectById(Class<T> entityClass, String id)
           
 List selectList(String statement)
           
 List selectList(String statement, ListQueryParameterObject parameter)
           
 List selectList(String statement, ListQueryParameterObject parameter, Page page)
           
 List selectList(String statement, Object parameter)
           
 List selectList(String statement, Object parameter, int firstResult, int maxResults)
           
 List selectList(String statement, Object parameter, Page page)
           
 List selectListWithRawParameter(String statement, Object parameter, int firstResult, int maxResults)
           
 Object selectOne(String statement, Object parameter)
           
protected  String toString(PersistentObject persistentObject)
           
 void update(PersistentObject persistentObject)
           
 void update(String statement, Object parameter)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sqlSession

protected org.apache.ibatis.session.SqlSession sqlSession

dbSqlSessionFactory

protected DbSqlSessionFactory dbSqlSessionFactory

insertedObjects

protected List<PersistentObject> insertedObjects

updatedObjects

protected List<PersistentObject> updatedObjects

cachedObjects

protected Map<Class<?>,Map<String,DbSqlSession.CachedObject>> cachedObjects

bulkUpdates

protected List<DbSqlSession.BulkUpdateOperation> bulkUpdates

deleteOperations

protected List<DbSqlSession.DeleteOperation> deleteOperations

deserializedObjects

protected List<DeserializedObject> deserializedObjects

connectionMetadataDefaultCatalog

protected String connectionMetadataDefaultCatalog

connectionMetadataDefaultSchema

protected String connectionMetadataDefaultSchema

JDBC_METADATA_TABLE_TYPES

public static String[] JDBC_METADATA_TABLE_TYPES
Constructor Detail

DbSqlSession

public DbSqlSession(DbSqlSessionFactory dbSqlSessionFactory)

DbSqlSession

public DbSqlSession(DbSqlSessionFactory dbSqlSessionFactory,
                    Connection connection,
                    String catalog,
                    String schema)
Method Detail

insertAt

public void insertAt(PersistentObject persistentObject,
                     int index)
Inserts a object at the given index in the insert objects list. If the index is -1 it will inserted at the end of the list.

Parameters:
persistentObject - the object to insert
index - the index at which the object should be inserted or -1 for the end of the list

insert

public void insert(PersistentObject persistentObject)

insertBefore

public void insertBefore(PersistentObject objectToInsert,
                         PersistentObject referenceObject)

update

public void update(PersistentObject persistentObject)

delete

public void delete(String statement,
                   Object parameter)

update

public void update(String statement,
                   Object parameter)

delete

public void delete(PersistentObject persistentObject)

selectList

public List selectList(String statement)

selectList

public List selectList(String statement,
                       Object parameter)

selectList

public List selectList(String statement,
                       Object parameter,
                       Page page)

selectList

public List selectList(String statement,
                       ListQueryParameterObject parameter,
                       Page page)

selectList

public List selectList(String statement,
                       Object parameter,
                       int firstResult,
                       int maxResults)

selectList

public List selectList(String statement,
                       ListQueryParameterObject parameter)

selectListWithRawParameter

public List selectListWithRawParameter(String statement,
                                       Object parameter,
                                       int firstResult,
                                       int maxResults)

selectOne

public Object selectOne(String statement,
                        Object parameter)

selectBoolean

public boolean selectBoolean(String statement,
                             Object parameter)

selectById

public <T extends PersistentObject> T selectById(Class<T> entityClass,
                                                 String id)

filterLoadedObjects

protected List filterLoadedObjects(List<Object> loadedObjects)

cachePut

protected DbSqlSession.CachedObject cachePut(PersistentObject persistentObject,
                                             boolean storeState)

cacheFilter

protected PersistentObject cacheFilter(PersistentObject persistentObject)
returns the object in the cache. if this object was loaded before, then the original object is returned. if this is the first time this object is loaded, then the loadedObject is added to the cache.


cacheGet

protected <T> T cacheGet(Class<T> entityClass,
                         String id)

cacheRemove

protected void cacheRemove(Class<?> persistentObjectClass,
                           String persistentObjectId)

findInCache

public <T> List<T> findInCache(Class<T> entityClass)

findInCache

public <T> T findInCache(Class<T> entityClass,
                         String id)

addDeserializedObject

public void addDeserializedObject(Object deserializedObject,
                                  byte[] serializedBytes,
                                  VariableInstanceEntity variableInstanceEntity)

flush

public void flush()
Specified by:
flush in interface Session

removeUnnecessaryOperations

protected void removeUnnecessaryOperations()

findInsertedObject

protected PersistentObject findInsertedObject(Class<?> persistenceObjectClass,
                                              String persistentObjectId)

flushDeserializedObjects

protected void flushDeserializedObjects()

getUpdatedObjects

public List<PersistentObject> getUpdatedObjects()

isUpdated

public boolean isUpdated(PersistentObject persistentObject)

isPersistentObjectDeleted

protected boolean isPersistentObjectDeleted(PersistentObject persistentObject)

pruneDeletedEntities

public <T extends PersistentObject> List<T> pruneDeletedEntities(List<T> listToPrune)

flushInserts

protected void flushInserts()

flushUpdates

protected void flushUpdates(List<PersistentObject> updatedObjects)

flushBulkUpdates

protected void flushBulkUpdates()

flushDeletes

protected void flushDeletes()

close

public void close()
Specified by:
close in interface Session

commit

public void commit()

rollback

public void rollback()

toString

protected String toString(PersistentObject persistentObject)

lock

public void lock(String statement)

dbSchemaCheckVersion

public void dbSchemaCheckVersion()

dbCreateHistoryLevel

public void dbCreateHistoryLevel()

checkHistoryLevel

public void checkHistoryLevel()

checkDeploymentLockExists

public void checkDeploymentLockExists()

addMissingComponent

protected String addMissingComponent(String missingComponents,
                                     String component)

getDbVersion

protected String getDbVersion()

dbSchemaCreate

public void dbSchemaCreate()

dbSchemaCreateIdentity

protected void dbSchemaCreateIdentity()

dbSchemaCreateHistory

protected void dbSchemaCreateHistory()

dbSchemaCreateEngine

protected void dbSchemaCreateEngine()

dbSchemaCreateCmmn

protected void dbSchemaCreateCmmn()

dbSchemaDrop

public void dbSchemaDrop()

dbSchemaPrune

public void dbSchemaPrune()

executeMandatorySchemaResource

public void executeMandatorySchemaResource(String operation,
                                           String component)

dbSchemaUpdate

public String dbSchemaUpdate()

isEngineTablePresent

public boolean isEngineTablePresent()

isHistoryTablePresent

public boolean isHistoryTablePresent()

isIdentityTablePresent

public boolean isIdentityTablePresent()

isCaseDefinitionTablePresent

public boolean isCaseDefinitionTablePresent()

isTablePresent

public boolean isTablePresent(String tableName)

prependDatabaseTablePrefix

protected String prependDatabaseTablePrefix(String tableName)

dbSchemaUpgrade

protected void dbSchemaUpgrade(String component,
                               String dbVersion)

getResourceForDbOperation

public String getResourceForDbOperation(String directory,
                                        String operation,
                                        String component)

executeSchemaResource

public void executeSchemaResource(String operation,
                                  String component,
                                  String resourceName,
                                  boolean isOptional)

executeSchemaResource

public void executeSchemaResource(String schemaFileResourceName)

addSqlStatementPiece

protected String addSqlStatementPiece(String sqlStatement,
                                      String line)

readNextTrimmedLine

protected String readNextTrimmedLine(BufferedReader reader)
                              throws IOException
Throws:
IOException

isMissingTablesException

protected boolean isMissingTablesException(Exception e)

performSchemaOperationsProcessEngineBuild

public void performSchemaOperationsProcessEngineBuild()

performSchemaOperationsProcessEngineClose

public void performSchemaOperationsProcessEngineClose()

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()

createUserQuery

public UserQueryImpl createUserQuery()

createGroupQuery

public GroupQueryImpl createGroupQuery()

getSqlSession

public org.apache.ibatis.session.SqlSession getSqlSession()

getDbSqlSessionFactory

public DbSqlSessionFactory getDbSqlSessionFactory()

isInsertedObject

public boolean isInsertedObject(PersistentObject persistentObject)


Copyright © 2014 camunda services GmbH. All Rights Reserved.