Package com.logicaldoc.core
Class HibernatePersistentObjectDAO<T extends PersistentObject>
- java.lang.Object
-
- com.logicaldoc.core.HibernatePersistentObjectDAO<T>
-
- All Implemented Interfaces:
PersistentObjectDAO<T>
- Direct Known Subclasses:
HibernateAttributeOptionDAO
,HibernateAttributeSetDAO
,HibernateBookmarkDAO
,HibernateContactDAO
,HibernateDashletDAO
,HibernateDocumentDAO
,HibernateDocumentHistoryDAO
,HibernateDocumentLinkDAO
,HibernateDocumentNoteDAO
,HibernateFolderDAO
,HibernateFolderHistoryDAO
,HibernateGenericDAO
,HibernateGroupDAO
,HibernateMenuDAO
,HibernateMessageTemplateDAO
,HibernateRatingDAO
,HibernateSequenceDAO
,HibernateSessionDAO
,HibernateSystemMessageDAO
,HibernateTemplateDAO
,HibernateTenantDAO
,HibernateTicketDAO
,HibernateUserDAO
,HibernateUserHistoryDAO
,HibernateVersionDAO
public abstract class HibernatePersistentObjectDAO<T extends PersistentObject> extends Object implements PersistentObjectDAO<T>
Hibernate implementation ofPersistentObjectDAO
- Since:
- 4.0
- Author:
- Marco Meschieri - LogicalDOC
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
bulkUpdate(String expression, Object[] values)
Executes a bulk update as specified by the given expressionboolean
delete(long id)
This method deletes an entity.boolean
delete(long id, int code)
This method deletes an entity and you can give a deletion codevoid
deleteAll(Collection<T> entities)
Deletes all entries form the databasevoid
deleteAll(Collection<T> entities, int code)
Deletes all entries form the database giving a specific deletion codeList<T>
findAll()
Finds all entities in the databaseList<T>
findAll(long tenantId)
Finds all entities in a specific tenant.List<Long>
findAllIds()
Finds all entities idsList<Long>
findAllIds(long tenantId)
Finds all entities ids in a specific tenant.T
findById(long id)
This method finds an entity by IDT
findById(long id, boolean initialize)
This method finds an entity by IDList<T>
findByObjectQuery(String query, Object[] values, Integer max)
Finds all entities by the given object query.List
findByQuery(String query, Object[] values, Integer max)
Find everything you want from the DB using the ORM query languageList<T>
findByWhere(String where, Object[] values, String order, Integer max)
Finds all entities by the given expression.List<T>
findByWhere(String where, String order, Integer max)
Finds all entities by the given expression.List<Long>
findIdsByWhere(String where, Object[] values, String order, Integer max)
Finds all entities ids by the given expression.List<Long>
findIdsByWhere(String where, String order, Integer max)
Finds all entities ids by the given expression.String
getDbms()
Get the DBMS name currently connected(possible values are: mysql, hsqldb, oracle, mssql)org.hibernate.SessionFactory
getSessionFactory()
void
initialize(T entity)
Doesn't do anything by defaultboolean
isOracle()
int
jdbcUpdate(String statement)
Executes the given SQL update statementint
jdbcUpdate(String statement, Object... args)
Issue a single SQL update operation (such as an insert, update or delete statement) via a prepared statement, binding the given argumentsList
query(String sql, Object[] args, org.springframework.jdbc.core.RowMapper rowMapper, Integer maxRows)
Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping each row to a Java object via a RowMapper.int
queryForInt(String sql)
Execute a query that results in an int value, given static SQL.List
queryForList(String sql, Class elementType)
Execute a query for a result list, given static SQL.List
queryForList(String sql, Object[] args, Class elementType, Integer maxRows)
Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result list.long
queryForLong(String sql)
Execute a query that results in an long value, given static SQL.Object
queryForObject(String sql, Class type)
Execute a query that results in a Object value, given static SQL.org.springframework.jdbc.support.rowset.SqlRowSet
queryForRowSet(String sql, Object[] args, Integer maxRows)
Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, returns a navigable RowSetString
queryForString(String sql)
Execute a query that results in an string value, given static SQL.void
setSessionFactory(org.hibernate.SessionFactory sessionFactory)
boolean
store(T entity)
This method persists the entity object
-
-
-
Method Detail
-
setSessionFactory
public void setSessionFactory(org.hibernate.SessionFactory sessionFactory)
-
delete
public boolean delete(long id, int code) throws PersistenceException
Description copied from interface:PersistentObjectDAO
This method deletes an entity and you can give a deletion code- Specified by:
delete
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
id
- ID of the entity which should be deletedcode
- Deletion code- Returns:
- if the record has been successfully deleted
- Throws:
PersistenceException
- raised in case of errors in the database
-
delete
public boolean delete(long id) throws PersistenceException
Description copied from interface:PersistentObjectDAO
This method deletes an entity. Same as delete(id, 1)- Specified by:
delete
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
id
- ID of the entity which should be deleted.- Returns:
- if the record has been successfully deleted
- Throws:
PersistenceException
- raised in case of errors in the database
-
findAll
public List<T> findAll()
Description copied from interface:PersistentObjectDAO
Finds all entities in the database- Specified by:
findAll
in interfacePersistentObjectDAO<T extends PersistentObject>
- Returns:
- The list of all entities
-
findAll
public List<T> findAll(long tenantId)
Description copied from interface:PersistentObjectDAO
Finds all entities in a specific tenant.- Specified by:
findAll
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
tenantId
- Identifier of the tenant to search in- Returns:
- The list of all entities
-
findAllIds
public List<Long> findAllIds()
Description copied from interface:PersistentObjectDAO
Finds all entities ids- Specified by:
findAllIds
in interfacePersistentObjectDAO<T extends PersistentObject>
- Returns:
- The list of all entities ids
-
findAllIds
public List<Long> findAllIds(long tenantId)
Description copied from interface:PersistentObjectDAO
Finds all entities ids in a specific tenant.- Specified by:
findAllIds
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
tenantId
- Identifier of the tenant to search in- Returns:
- The list of all entities ids
-
findById
public T findById(long id, boolean initialize)
Description copied from interface:PersistentObjectDAO
This method finds an entity by ID- Specified by:
findById
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
id
- ID of the entityinitialize
- True if the instance's lazy collections have to be initialized- Returns:
- Entity with given ID
-
findById
public T findById(long id)
Description copied from interface:PersistentObjectDAO
This method finds an entity by ID- Specified by:
findById
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
id
- ID of the entity- Returns:
- Entity with given ID
-
findByWhere
public List<T> findByWhere(String where, String order, Integer max) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Finds all entities by the given expression. Use _entity alias to reference attributes in the where expression.- Specified by:
findByWhere
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
where
- The where clause expressionorder
- The order clause expressionmax
- Maximum results number (optional)- Returns:
- The list of marching entities
- Throws:
PersistenceException
- raised in case of errors in the database
-
findByWhere
public List<T> findByWhere(String where, Object[] values, String order, Integer max) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Finds all entities by the given expression. Use _entity alias to reference attributes in the where expression.- Specified by:
findByWhere
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
where
- The where clause expression (for positional parameters, please use JPA-style: ?1, ?2 ...)values
- Parameters used in the where expressionorder
- The order clause expressionmax
- Maximum results number (optional)- Returns:
- The list of marching entities
- Throws:
PersistenceException
- raised in case of errors in the database
-
findByObjectQuery
public List<T> findByObjectQuery(String query, Object[] values, Integer max) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Finds all entities by the given object query.- Specified by:
findByObjectQuery
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
query
- The query expression (for positional parameters, please use JPA-style: ?1, ?2 ...)values
- Parameters used in the where expressionmax
- Maximum results number (optional)- Returns:
- The list of marching entities
- Throws:
PersistenceException
- raised in case of errors in the database
-
findByQuery
public List findByQuery(String query, Object[] values, Integer max) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Find everything you want from the DB using the ORM query language- Specified by:
findByQuery
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
query
- The query to execute (for positional parameters, please use JPA-style: ?1, ?2 ...)values
- Array of paramatersmax
- Maximum results number (optional)- Returns:
- Query result
- Throws:
PersistenceException
- raised in case of errors in the database
-
findIdsByWhere
public List<Long> findIdsByWhere(String where, String order, Integer max) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Finds all entities ids by the given expression. Use _entity alias to reference attributes in the where expression.- Specified by:
findIdsByWhere
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
where
- The where clause expressionorder
- The order clause expressionmax
- Maximum results number (optional)- Returns:
- The list of marching entities ids
- Throws:
PersistenceException
- raised in case of errors in the database
-
findIdsByWhere
public List<Long> findIdsByWhere(String where, Object[] values, String order, Integer max) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Finds all entities ids by the given expression. Use _entity alias to reference attributes in the where expression.- Specified by:
findIdsByWhere
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
where
- The where clause expression (for positional parameters, please use JPA-style: ?1, ?2 ...)values
- Parameters used in the where expressionorder
- The order clause expressionmax
- Maximum results number (optional)- Returns:
- The list of marching entities ids
- Throws:
PersistenceException
- raised in case of errors in the database
-
store
public boolean store(T entity) throws PersistenceException
Description copied from interface:PersistentObjectDAO
This method persists the entity object- Specified by:
store
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
entity
- entity to be stored- Returns:
- True if successfully stored in a database
- Throws:
PersistenceException
- raised in case of errors in the database
-
initialize
public void initialize(T entity)
Doesn't do anything by default- Specified by:
initialize
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
entity
- The entity to be initialised
-
query
public List query(String sql, Object[] args, org.springframework.jdbc.core.RowMapper rowMapper, Integer maxRows) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping each row to a Java object via a RowMapper.- Specified by:
query
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
sql
- SQL query to executeargs
- arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type); may also contain SqlParameterValue objects which indicate not only the argument value but also the SQL type and optionally the scalerowMapper
- object that will map one object per rowmaxRows
- the new max rows limit; null means there is no limit- Returns:
- the result List, containing mapped objects
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForList
public List queryForList(String sql, Object[] args, Class elementType, Integer maxRows) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result list. The results will be mapped to a List (one entry for each row) of result objects, each of them matching the specified element type.- Specified by:
queryForList
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
sql
- SQL query to executeargs
- arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type); may also contain SqlParameterValue objects which indicate not only the argument value but also the SQL type and optionally the scaleelementType
- the required type of element in the result list (for example, Integer.class)maxRows
- maximum number of returned records- Returns:
- a List of objects that match the specified element type
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForRowSet
public org.springframework.jdbc.support.rowset.SqlRowSet queryForRowSet(String sql, Object[] args, Integer maxRows) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, returns a navigable RowSet- Specified by:
queryForRowSet
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
sql
- SQL query to executeargs
- arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type); may also contain SqlParameterValue objects which indicate not only the argument value but also the SQL type and optionally the scalemaxRows
- the new max rows limit; null means there is no limit- Returns:
- the result row set
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForList
public List queryForList(String sql, Class elementType) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Execute a query for a result list, given static SQL. Uses a JDBC Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForList method with null as argument array. The results will be mapped to a List (one entry for each row) of result objects, each of them matching the specified element type.- Specified by:
queryForList
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
sql
- SQL query to executeelementType
- the required type of element in the result list (for example, Integer.class)- Returns:
- a List of objects that match the specified element type
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForInt
public int queryForInt(String sql) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Execute a query that results in an int value, given static SQL. Uses a JDBC Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForInt method with null as argument array. This method is useful for running static SQL with a known outcome. The query is expected to be a single row/single column query that results in an int value.- Specified by:
queryForInt
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
sql
- SQL query to execute- Returns:
- the int value, or 0 in case of SQL NULL
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForLong
public long queryForLong(String sql) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Execute a query that results in an long value, given static SQL. Uses a JDBC Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForInt method with null as argument array. This method is useful for running static SQL with a known outcome. The query is expected to be a single row/single column query that results in a long value.- Specified by:
queryForLong
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
sql
- SQL query to execute- Returns:
- the long value, or 0 in case of SQL NULL
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForString
public String queryForString(String sql) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Execute a query that results in an string value, given static SQL. Uses a JDBC Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForInt method with null as argument array. This method is useful for running static SQL with a known outcome. The query is expected to be a single row/single column query that results in a string value.- Specified by:
queryForString
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
sql
- SQL query to execute- Returns:
- the string value
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForObject
public Object queryForObject(String sql, Class type) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Execute a query that results in a Object value, given static SQL. Uses a JDBC Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement. This method is useful for running static SQL with a known outcome. The query is expected to be a single row/single column query that results in a object value.- Specified by:
queryForObject
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
sql
- SQL query to executetype
- The type of the returned value- Returns:
- the object value
- Throws:
PersistenceException
- raised in case of errors in the database
-
jdbcUpdate
public int jdbcUpdate(String statement) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Executes the given SQL update statement- Specified by:
jdbcUpdate
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
statement
- the SQL statement to execute against the database- Returns:
- the value returned by the database after execution
- Throws:
PersistenceException
- raised in case of errors in the database
-
deleteAll
public void deleteAll(Collection<T> entities, int code) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Deletes all entries form the database giving a specific deletion code- Specified by:
deleteAll
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
entities
- The entities to be deletedcode
- The deletion code- Throws:
PersistenceException
- raised in case of errors in the database
-
deleteAll
public void deleteAll(Collection<T> entities) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Deletes all entries form the database- Specified by:
deleteAll
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
entities
- The entities to be deleted- Throws:
PersistenceException
- raised in case of errors in the database
-
bulkUpdate
public int bulkUpdate(String expression, Object[] values) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Executes a bulk update as specified by the given expression- Specified by:
bulkUpdate
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
expression
- The update expression. (for positional parameters, please use JPA-style: ?1, ?2 ...)values
- Optional array of parameters values- Returns:
- the number of modified records
- Throws:
PersistenceException
- raised in case of errors in the database
-
jdbcUpdate
public int jdbcUpdate(String statement, Object... args) throws PersistenceException
Description copied from interface:PersistentObjectDAO
Issue a single SQL update operation (such as an insert, update or delete statement) via a prepared statement, binding the given arguments- Specified by:
jdbcUpdate
in interfacePersistentObjectDAO<T extends PersistentObject>
- Parameters:
statement
- SQL containing bind parametersargs
- arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type); may also contain SqlParameterValue objects which indicate not only the argument value but also the SQL type and optionally the scale- Returns:
- the number of rows affected
- Throws:
PersistenceException
- raised in case of errors in the database
-
getDbms
public String getDbms()
Description copied from interface:PersistentObjectDAO
Get the DBMS name currently connected(possible values are: mysql, hsqldb, oracle, mssql)- Specified by:
getDbms
in interfacePersistentObjectDAO<T extends PersistentObject>
- Returns:
- the database identifier
-
isOracle
public boolean isOracle()
- Specified by:
isOracle
in interfacePersistentObjectDAO<T extends PersistentObject>
-
getSessionFactory
public org.hibernate.SessionFactory getSessionFactory()
-
-