Class HibernatePersistenceService
- java.lang.Object
-
- org.bonitasoft.engine.persistence.HibernatePersistenceService
-
- All Implemented Interfaces:
ReadPersistenceService,PersistenceService
public class HibernatePersistenceService extends java.lang.Object implements PersistenceService
Hibernate implementation of the persistence service- Author:
- Charles Souillard, Nicolas Chabanoles, Yanyan Liu, Matthieu Chaffotte, Celine Souchet, Laurent Vaills, Guillaume Rosinosky
-
-
Constructor Summary
Constructors Constructor Description HibernatePersistenceService(ReadSessionAccessor sessionAccessor, HibernateConfigurationProvider hbmConfigurationProvider, java.util.Properties extraHibernateProperties, SequenceManager sequenceManager, QueryBuilderFactory queryBuilderFactory, HibernateMetricsBinder hibernateMetricsBinder)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddelete(long id, java.lang.Class<? extends PersistentObject> entityClass)Delete a record from the table by id and its class type.voiddelete(java.util.List<java.lang.Long> ids, java.lang.Class<? extends PersistentObject> entityClass)Delete records from the table.voiddelete(PersistentObject entity)Delete a record from the table by given persistentObject.voiddeleteAll(java.lang.Class<? extends PersistentObject> entityClass)Delete all records belong to the given entity class from the table.voiddeleteByTenant(java.lang.Class<? extends PersistentObject> entityClass, java.util.List<FilterOption> filters)Delete all elements of a specific table for a specific tenantvoiddestroy()voidflushStatements()java.util.Map<java.lang.String,java.lang.String>getClassAliasMappings()protected org.slf4j.LoggergetLogger()<T extends PersistentObject>
longgetNumberOfEntities(java.lang.Class<T> entityClass, java.lang.String querySuffix, QueryOptions options, java.util.Map<java.lang.String,java.lang.Object> parameters)<T extends PersistentObject>
longgetNumberOfEntities(java.lang.Class<T> entityClass, QueryOptions options, java.util.Map<java.lang.String,java.lang.Object> parameters)protected SequenceManagergetSequenceManager()protected org.hibernate.SessiongetSession()protected longgetTenantId()voidinsert(PersistentObject entity)Add a record into the table by given persistentObject.voidinsertInBatch(java.util.List<? extends PersistentObject> entities)<T extends PersistentObject>
java.util.List<T>searchEntity(java.lang.Class<T> entityClass, java.lang.String querySuffix, QueryOptions options, java.util.Map<java.lang.String,java.lang.Object> parameters)<T extends PersistentObject>
java.util.List<T>searchEntity(java.lang.Class<T> entityClass, QueryOptions options, java.util.Map<java.lang.String,java.lang.Object> parameters)<T extends PersistentObject>
TselectById(SelectByIdDescriptor<T> selectDescriptor)<T> java.util.List<T>selectList(SelectListDescriptor<T> selectDescriptor)<T> TselectOne(SelectOneDescriptor<T> selectDescriptor)protected voidsetId(PersistentObject entity)protected voidsetTenant(PersistentObject entity)intupdate(java.lang.String updateQueryName)Executes a query update.intupdate(java.lang.String updateQueryName, java.util.Map<java.lang.String,java.lang.Object> inputParameters)Executes a query update.voidupdate(UpdateDescriptor updateDescriptor)
-
-
-
Constructor Detail
-
HibernatePersistenceService
public HibernatePersistenceService(ReadSessionAccessor sessionAccessor, HibernateConfigurationProvider hbmConfigurationProvider, java.util.Properties extraHibernateProperties, SequenceManager sequenceManager, QueryBuilderFactory queryBuilderFactory, HibernateMetricsBinder hibernateMetricsBinder)
-
-
Method Detail
-
getSession
protected org.hibernate.Session getSession() throws SPersistenceException- Throws:
SPersistenceException
-
flushStatements
public void flushStatements() throws SPersistenceException- Specified by:
flushStatementsin interfacePersistenceService- Throws:
SPersistenceException
-
delete
public void delete(PersistentObject entity) throws SPersistenceException
Description copied from interface:PersistenceServiceDelete a record from the table by given persistentObject.- Specified by:
deletein interfacePersistenceService- Throws:
SPersistenceException
-
update
public int update(java.lang.String updateQueryName) throws SPersistenceExceptionDescription copied from interface:PersistenceServiceExecutes a query update.- Specified by:
updatein interfacePersistenceService- Parameters:
updateQueryName- the name of the declared query that represent the update.- Returns:
- the number of updated rows, as returned by the underlining persistence implementation.
- Throws:
SPersistenceException- if a persistence problem occurs when executing the update query.
-
update
public int update(java.lang.String updateQueryName, java.util.Map<java.lang.String,java.lang.Object> inputParameters) throws SPersistenceExceptionDescription copied from interface:PersistenceServiceExecutes a query update.- Specified by:
updatein interfacePersistenceService- Returns:
- Throws:
SPersistenceException
-
deleteAll
public void deleteAll(java.lang.Class<? extends PersistentObject> entityClass) throws SPersistenceException
Description copied from interface:PersistenceServiceDelete all records belong to the given entity class from the table.- Specified by:
deleteAllin interfacePersistenceService- Parameters:
entityClass- The class which extends persistentObject- Throws:
SPersistenceException
-
insert
public void insert(PersistentObject entity) throws SPersistenceException
Description copied from interface:PersistenceServiceAdd a record into the table by given persistentObject.- Specified by:
insertin interfacePersistenceService- Throws:
SPersistenceException
-
insertInBatch
public void insertInBatch(java.util.List<? extends PersistentObject> entities) throws SPersistenceException
- Specified by:
insertInBatchin interfacePersistenceService- Throws:
SPersistenceException
-
update
public void update(UpdateDescriptor updateDescriptor) throws SPersistenceException
- Specified by:
updatein interfacePersistenceService- Throws:
SPersistenceException
-
selectOne
public <T> T selectOne(SelectOneDescriptor<T> selectDescriptor) throws SBonitaReadException
- Specified by:
selectOnein interfaceReadPersistenceService- Returns:
- Throws:
SBonitaReadException
-
selectById
public <T extends PersistentObject> T selectById(SelectByIdDescriptor<T> selectDescriptor) throws SBonitaReadException
- Specified by:
selectByIdin interfaceReadPersistenceService- Returns:
- Throws:
SBonitaReadException
-
selectList
public <T> java.util.List<T> selectList(SelectListDescriptor<T> selectDescriptor) throws SBonitaReadException
- Specified by:
selectListin interfaceReadPersistenceService- Returns:
- Throws:
SBonitaReadException
-
getClassAliasMappings
public java.util.Map<java.lang.String,java.lang.String> getClassAliasMappings()
-
delete
public void delete(long id, java.lang.Class<? extends PersistentObject> entityClass) throws SPersistenceExceptionDescription copied from interface:PersistenceServiceDelete a record from the table by id and its class type.- Specified by:
deletein interfacePersistenceService- Parameters:
id- entity's identityClass- The class which extends persistentObject- Throws:
SPersistenceException
-
delete
public void delete(java.util.List<java.lang.Long> ids, java.lang.Class<? extends PersistentObject> entityClass) throws SPersistenceExceptionDescription copied from interface:PersistenceServiceDelete records from the table.- Specified by:
deletein interfacePersistenceService- Parameters:
ids- A list contains entity idsentityClass- The class which extends persistentObject- Throws:
SPersistenceException
-
destroy
public void destroy()
-
getNumberOfEntities
public <T extends PersistentObject> long getNumberOfEntities(java.lang.Class<T> entityClass, QueryOptions options, java.util.Map<java.lang.String,java.lang.Object> parameters) throws SBonitaReadException
- Specified by:
getNumberOfEntitiesin interfaceReadPersistenceService- Returns:
- Throws:
SBonitaReadException
-
getNumberOfEntities
public <T extends PersistentObject> long getNumberOfEntities(java.lang.Class<T> entityClass, java.lang.String querySuffix, QueryOptions options, java.util.Map<java.lang.String,java.lang.Object> parameters) throws SBonitaReadException
- Specified by:
getNumberOfEntitiesin interfaceReadPersistenceService- Returns:
- Throws:
SBonitaReadException
-
searchEntity
public <T extends PersistentObject> java.util.List<T> searchEntity(java.lang.Class<T> entityClass, QueryOptions options, java.util.Map<java.lang.String,java.lang.Object> parameters) throws SBonitaReadException
- Specified by:
searchEntityin interfaceReadPersistenceService- Returns:
- Throws:
SBonitaReadException
-
searchEntity
public <T extends PersistentObject> java.util.List<T> searchEntity(java.lang.Class<T> entityClass, java.lang.String querySuffix, QueryOptions options, java.util.Map<java.lang.String,java.lang.Object> parameters) throws SBonitaReadException
- Specified by:
searchEntityin interfaceReadPersistenceService- Parameters:
entityClass- class of the object we want to search onquerySuffix- Used to define customized search queryoptions- query options- Returns:
- Throws:
SBonitaReadException
-
getSequenceManager
protected SequenceManager getSequenceManager()
-
setId
protected void setId(PersistentObject entity) throws SPersistenceException
- Throws:
SPersistenceException
-
getLogger
protected org.slf4j.Logger getLogger()
-
getTenantId
protected long getTenantId() throws STenantIdNotSetException- Throws:
STenantIdNotSetException
-
setTenant
protected void setTenant(PersistentObject entity) throws SPersistenceException
- Throws:
SPersistenceException
-
deleteByTenant
public void deleteByTenant(java.lang.Class<? extends PersistentObject> entityClass, java.util.List<FilterOption> filters) throws SPersistenceException
Description copied from interface:PersistenceServiceDelete all elements of a specific table for a specific tenant- Specified by:
deleteByTenantin interfacePersistenceService- Parameters:
entityClass- Entity class corresponding to the table to emptyfilters- Filters- Throws:
SPersistenceException
-
-