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
,HibernateDeviceDAO
,HibernateDocumentDAO
,HibernateDocumentHistoryDAO
,HibernateDocumentLinkDAO
,HibernateDocumentNoteDAO
,HibernateFolderDAO
,HibernateFolderHistoryDAO
,HibernateGenericDAO
,HibernateGroupDAO
,HibernateMenuDAO
,HibernateMessageTemplateDAO
,HibernatePasswordHistoryDAO
,HibernateRatingDAO
,HibernateSearchDAO
,HibernateSequenceDAO
,HibernateSessionDAO
,HibernateSystemMessageDAO
,HibernateTemplateDAO
,HibernateTenantDAO
,HibernateTicketDAO
,HibernateUserDAO
,HibernateUserHistoryDAO
,HibernateVersionDAO
,HibernateWebserviceCallDAO
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) throws PersistenceException
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
- Throws:
PersistenceException
- raised in case of errors in the database
-
findById
public T findById(long id) throws PersistenceException
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
- Throws:
PersistenceException
- raised in case of errors in the database
-
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 matching 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()
-
-