Package com.logicaldoc.core
Interface PersistentObjectDAO<T extends PersistentObject>
- Type Parameters:
T
- Class of the implementation of aPersistentObject
this DAO handles
- All Known Subinterfaces:
ApiKeyDAO
,AttributeOptionDAO
,AttributeSetDAO
,BookmarkDAO
,ContactDAO
,DashletDAO
,DeviceDAO
,DocumentDAO
,DocumentHistoryDAO
,DocumentLinkDAO
,DocumentNoteDAO
,FolderDAO
,FolderHistoryDAO
,GenericDAO
,GroupDAO
,MenuDAO
,MessageTemplateDAO
,PasswordHistoryDAO
,RatingDAO
,SearchDAO
,SequenceDAO
,SessionDAO
,SystemMessageDAO
,TemplateDAO
,TenantDAO
,TicketDAO
,UserDAO
,UserHistoryDAO
,VersionDAO
,WebserviceCallDAO
- All Known Implementing Classes:
HibernateApiKeyDAO
,HibernateAttributeOptionDAO
,HibernateAttributeSetDAO
,HibernateBookmarkDAO
,HibernateContactDAO
,HibernateDashletDAO
,HibernateDeviceDAO
,HibernateDocumentDAO
,HibernateDocumentHistoryDAO
,HibernateDocumentLinkDAO
,HibernateDocumentNoteDAO
,HibernateFolderDAO
,HibernateFolderHistoryDAO
,HibernateGenericDAO
,HibernateGroupDAO
,HibernateHistoryDAO
,HibernateMenuDAO
,HibernateMessageTemplateDAO
,HibernatePasswordHistoryDAO
,HibernatePersistentObjectDAO
,HibernateRatingDAO
,HibernateSearchDAO
,HibernateSequenceDAO
,HibernateSessionDAO
,HibernateSystemMessageDAO
,HibernateTemplateDAO
,HibernateTenantDAO
,HibernateTicketDAO
,HibernateUserDAO
,HibernateUserHistoryDAO
,HibernateVersionDAO
,HibernateWebserviceCallDAO
public interface PersistentObjectDAO<T extends PersistentObject>
Interface for DAOs that operate on persistent objects
- Since:
- 4.0
- Author:
- Marco Meschieri - LogicalDOC
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
bulkUpdate
(String expression, Map<String, Object> parameters) Executes a bulk update as specified by the given HQL expressionvoid
delete
(long id) This method deletes an entity.void
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 codefindAll()
Finds all entities in the databasefindAll
(long tenantId) Finds all entities in a specific tenant.Finds all entities idsfindAllIds
(long tenantId) Finds all entities ids in a specific tenant.findById
(long id) This method finds an entity by IDfindById
(long id, boolean initialize) This method finds an entity by IDFinds all entities by the given object query.<R> List
<R> Find everything you want from the DB using the ORM query languageFind everything you want from the DB using the ORM query languagefindByWhere
(String where, String order, Integer max) Finds all entities by the given expression.Finds all entities by the given expression.findIdsByWhere
(String where, String order, Integer max) Finds all entities ids by the given expression.Finds all entities ids by the given expression.Retrieves the metadata from the databasegetDbms()
Get the DBMS name currently connected(possible values are: mysql, mariadb, postgresql, hsqldb, oracle, mssql)void
initialize
(T entity) Initialises lazy loaded data such as collectionsboolean
isMySQL()
boolean
isOracle()
int
jdbcUpdate
(String sql) Executes the given SQL update statementint
jdbcUpdate
(String sql, Map<String, Object> parameters) Issue a single SQL update operation (such as an insert, update or delete statement) via a prepared statement, binding the given arguments<P> List
<P> query
(String sql, Map<String, Object> parameters, org.springframework.jdbc.core.RowMapper<P> 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.<P> List
<P> 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.double
queryForDouble
(String sql) Execute a query that results in a double value, given static SQL.double
queryForDouble
(String sql, Map<String, Object> parameters) Execute a query that results in a double value, given static SQL.int
queryForInt
(String sql) Execute a query that results in an int value, given static SQL.int
queryForInt
(String sql, Map<String, Object> parameters) Execute a query that results in an int value, given static SQL.<R> List
<R> queryForList
(String sql, Class<R> requiredType) Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result list.<R> List
<R> queryForList
(String sql, Class<R> requiredType, Integer maxRows) Execute a query for a result list, given static SQL.<R> List
<R> 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.long
queryForLong
(String sql, Map<String, Object> parameters) Execute a query that results in an long value, given static SQL.<R> R
queryForObject
(String sql, Class<R> requiredType) Execute a query that results in a Object value, given static SQL.<R> R
Execute a query that results in a Object value, given static SQL.void
queryForResultSet
(String sql, Map<String, Object> parameters, Integer maxRows, ResultSetWalker worker) Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, you can give your own worker to iterate theResultSet
.queryForString
(String sql) Execute a query that results in an string value, given static SQL.void
This method persists the entity object
-
Field Details
-
ENTITY
The alias to use to reference the object in the queries- See Also:
-
-
Method Details
-
store
This method persists the entity object- Parameters:
entity
- entity to be stored- Throws:
PersistenceException
- raised in case of errors in the database
-
findById
This method finds an entity by ID- Parameters:
id
- ID of the entity- Returns:
- Entity with given ID
- Throws:
PersistenceException
- raised in case of errors in the database
-
findById
This method finds an entity by ID- 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
-
findAll
Finds all entities in the database- Returns:
- The list of all entities
- Throws:
PersistenceException
- Error in the database
-
findAll
Finds all entities in a specific tenant.- Parameters:
tenantId
- Identifier of the tenant to search in- Returns:
- The list of all entities
- Throws:
PersistenceException
- Error in the database
-
findAllIds
Finds all entities ids- Returns:
- The list of all entities ids
- Throws:
PersistenceException
- Error in the database
-
findAllIds
Finds all entities ids in a specific tenant.- Parameters:
tenantId
- Identifier of the tenant to search in- Returns:
- The list of all entities ids
- Throws:
PersistenceException
- Error in the database
-
findByWhere
Finds all entities by the given expression. Use "_entity"<T extends PersistentObject> alias to reference attributes in the where expression.- 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
List<T> findByWhere(String where, Map<String, Object> parameters, String order, Integer max) throws PersistenceExceptionFinds all entities by the given expression. Use "_entity"<T extends PersistentObject> alias to reference attributes in the where expression.- Parameters:
where
- The where clause expressionparameters
- 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
List<T> findByObjectQuery(String query, Map<String, Object> parameters, Integer max) throws PersistenceExceptionFinds all entities by the given object query.- Parameters:
query
- The query expressionparameters
- 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
List<Object[]> findByQuery(String query, Map<String, Object> parameters, Integer max) throws PersistenceExceptionFind everything you want from the DB using the ORM query language- Parameters:
query
- The query to executeparameters
- The map of the parametersmax
- Maximum results number (optional)- Returns:
- Query result
- Throws:
PersistenceException
- raised in case of errors in the database
-
findByQuery
<R> List<R> findByQuery(String query, Map<String, Object> parameters, Class<R> requiredType, Integer max) throws PersistenceExceptionFind everything you want from the DB using the ORM query language- Parameters:
query
- The query to executeparameters
- The map of the parametersrequiredType
- The type of the elements in the resultmax
- Maximum results number (optional)- Returns:
- Query result
- Throws:
PersistenceException
- raised in case of errors in the database
-
findIdsByWhere
Finds all entities ids by the given expression. Use "_entity"<T extends PersistentObject> alias to reference attributes in the where expression.- 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
List<Long> findIdsByWhere(String where, Map<String, Object> parameters, String order, Integer max) throws PersistenceExceptionFinds all entities ids by the given expression. Use "_entity"<T extends PersistentObject> alias to reference attributes in the where expression.- Parameters:
where
- The where clause expression (for parameters, please use JPA-style: :paramA, :paramB ...)parameters
- The map of the parametersorder
- 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
-
initialize
Initialises lazy loaded data such as collections- Parameters:
entity
- The entity to be initialised- Throws:
PersistenceException
- raised in case of errors in the database
-
query
<P> List<P> query(String sql, org.springframework.jdbc.core.RowMapper<P> rowMapper, Integer maxRows) throws PersistenceException 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.- Parameters:
sql
- SQL query to executerowMapper
- 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
-
query
<P> List<P> query(String sql, Map<String, Object> parameters, org.springframework.jdbc.core.RowMapper<P> rowMapper, Integer maxRows) throws PersistenceExceptionQuery 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.- Parameters:
sql
- SQL query to execute (for parameters please use JPA-style: :paramA, :paramB ...)parameters
- Parameters used in the where expression (map name-value)rowMapper
- 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
-
queryForResultSet
void queryForResultSet(String sql, Map<String, Object> parameters, Integer maxRows, ResultSetWalker worker) throws PersistenceExceptionQuery given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, you can give your own worker to iterate theResultSet
.- Parameters:
sql
- SQL query to execute (for parameters please use JPA-style: :paramA, :paramB ...)parameters
- Parameters used in the where expression (map name-value)maxRows
- the new max rows limit; null means there is no limitworker
- an implementation that receive theResultSet
to iterate- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForList
<R> List<R> queryForList(String sql, Map<String, Object> parameters, Class<R> requiredType, Integer maxRows) throws PersistenceExceptionQuery 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.- Parameters:
sql
- SQL query to execute (for parameters please use JPA-style: :paramA, :paramB ...)parameters
- Parameters used in the where expression (map name-value)requiredType
- 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
-
queryForList
<R> List<R> queryForList(String sql, Class<R> requiredType, Integer maxRows) throws PersistenceException 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.- Parameters:
sql
- SQL query to executerequiredType
- 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
-
queryForList
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.- Parameters:
sql
- SQL query to executerequiredType
- 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
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.- 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
-
queryForInt
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.- Parameters:
sql
- SQL query to executeparameters
- Parameters used in the where expression (map name-value)- Returns:
- the int value, or 0 in case of SQL NULL
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForLong
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.- 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
-
queryForLong
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.- Parameters:
sql
- SQL query to execute (for parameters please use JPA-style: :paramA, :paramB ...)parameters
- Parameters used in the where expression (map name-value)- Returns:
- the long value, or 0 in case of SQL NULL
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForDouble
Execute a query that results in a double 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.- Parameters:
sql
- SQL query to execute- Returns:
- the double value, or 0 in case of SQL NULL
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForDouble
Execute a query that results in a double 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.- Parameters:
sql
- SQL query to execute (for parameters please use JPA-style: :paramA, :paramB ...)parameters
- Parameters used in the where expression (map name-value)- Returns:
- the double value, or 0 in case of SQL NULL
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForString
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.- Parameters:
sql
- SQL query to execute- Returns:
- the string value
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForObject
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.- Parameters:
sql
- SQL query to executerequiredType
- The type of the returned value- Returns:
- the object value
- Throws:
PersistenceException
- raised in case of errors in the database
-
queryForObject
<R> R queryForObject(String sql, Map<String, Object> parameters, Class<R> requiredType) throws PersistenceExceptionExecute 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.- Parameters:
sql
- SQL query to executeparameters
- Optional map of parametersrequiredType
- The type of the returned value- Returns:
- the object value
- Throws:
PersistenceException
- raised in case of errors in the database
-
delete
This method deletes an entity. Same as delete(id, 1)- Parameters:
id
- ID of the entity which should be deleted.- Throws:
PersistenceException
- raised in case of errors in the database
-
delete
This method deletes an entity and you can give a deletion code- Parameters:
id
- ID of the entity which should be deletedcode
- Deletion code- Throws:
PersistenceException
- raised in case of errors in the database
-
deleteAll
Deletes all entries form the database- Parameters:
entities
- The entities to be deleted- Throws:
PersistenceException
- raised in case of errors in the database
-
deleteAll
Deletes all entries form the database giving a specific deletion code- Parameters:
entities
- The entities to be deletedcode
- The deletion code- Throws:
PersistenceException
- raised in case of errors in the database
-
bulkUpdate
Executes a bulk update as specified by the given HQL expression- Parameters:
expression
- The update expression.parameters
- Optional map of parameters- Returns:
- the number of modified records
- Throws:
PersistenceException
- raised in case of errors in the database
-
jdbcUpdate
Executes the given SQL update statement- Parameters:
sql
- 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
-
jdbcUpdate
Issue a single SQL update operation (such as an insert, update or delete statement) via a prepared statement, binding the given arguments- Parameters:
sql
- SQL statement to execute (for parameters please use JPA-style: :paramA, :paramB ...)parameters
- Parameters used in the where expression (map name-value)- Returns:
- the number of rows affected
- Throws:
PersistenceException
- raised in case of errors in the database
-
getDbms
String getDbms()Get the DBMS name currently connected(possible values are: mysql, mariadb, postgresql, hsqldb, oracle, mssql)- Returns:
- the database identifier
-
isOracle
boolean isOracle() -
isMySQL
boolean isMySQL() -
getDatabaseMetadata
Retrieves the metadata from the database- Returns:
- a map of metadata from the database driver
-