Interface PersistentObjectDAO<T extends PersistentObject>

Type Parameters:
T - Class of the implementation of a PersistentObject 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 Details

  • Method Details

    • store

      void store(T entity) throws PersistenceException
      This method persists the entity object
      Parameters:
      entity - entity to be stored
      Throws:
      PersistenceException - raised in case of errors in the database
    • findById

      T findById(long id) throws PersistenceException
      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

      T findById(long id, boolean initialize) throws PersistenceException
      This method finds an entity by ID
      Parameters:
      id - ID of the entity
      initialize - 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

      List<T> findAll() throws PersistenceException
      Finds all entities in the database
      Returns:
      The list of all entities
      Throws:
      PersistenceException - Error in the database
    • findAll

      List<T> findAll(long tenantId) throws PersistenceException
      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

      List<Long> findAllIds() throws PersistenceException
      Finds all entities ids
      Returns:
      The list of all entities ids
      Throws:
      PersistenceException - Error in the database
    • findAllIds

      List<Long> findAllIds(long tenantId) throws PersistenceException
      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

      List<T> findByWhere(String where, String order, Integer max) throws PersistenceException
      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 expression
      order - The order clause expression
      max - 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 PersistenceException
      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 expression
      parameters - Parameters used in the where expression
      order - The order clause expression
      max - 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 PersistenceException
      Finds all entities by the given object query.
      Parameters:
      query - The query expression
      parameters - Parameters used in the where expression
      max - 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 PersistenceException
      Find everything you want from the DB using the ORM query language
      Parameters:
      query - The query to execute
      parameters - The map of the parameters
      max - 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 PersistenceException
      Find everything you want from the DB using the ORM query language
      Parameters:
      query - The query to execute
      parameters - The map of the parameters
      requiredType - The type of the elements in the result
      max - Maximum results number (optional)
      Returns:
      Query result
      Throws:
      PersistenceException - raised in case of errors in the database
    • findIdsByWhere

      List<Long> findIdsByWhere(String where, String order, Integer max) throws PersistenceException
      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 expression
      order - The order clause expression
      max - 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 PersistenceException
      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 expression (for parameters, please use JPA-style: :paramA, :paramB ...)
      parameters - The map of the parameters
      order - The order clause expression
      max - Maximum results number (optional)
      Returns:
      The list of marching entities ids
      Throws:
      PersistenceException - raised in case of errors in the database
    • initialize

      void initialize(T entity) throws PersistenceException
      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 execute
      rowMapper - object that will map one object per row
      maxRows - 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 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 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 row
      maxRows - 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 PersistenceException
      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 the ResultSet.
      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 limit
      worker - an implementation that receive the ResultSet 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 PersistenceException
      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 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 execute
      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) throws PersistenceException
      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 execute
      requiredType - 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

      int queryForInt(String sql) throws PersistenceException
      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

      int queryForInt(String sql, Map<String,Object> parameters) throws PersistenceException
      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
      parameters - 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

      long queryForLong(String sql) throws PersistenceException
      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

      long queryForLong(String sql, Map<String,Object> parameters) throws PersistenceException
      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

      double queryForDouble(String sql) throws PersistenceException
      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

      double queryForDouble(String sql, Map<String,Object> parameters) throws PersistenceException
      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

      String queryForString(String sql) throws PersistenceException
      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

      <R> R queryForObject(String sql, Class<R> requiredType) throws PersistenceException
      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 execute
      requiredType - 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 PersistenceException
      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 execute
      parameters - Optional map of parameters
      requiredType - The type of the returned value
      Returns:
      the object value
      Throws:
      PersistenceException - raised in case of errors in the database
    • delete

      void delete(long id) throws PersistenceException
      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

      void delete(long id, int code) throws PersistenceException
      This method deletes an entity and you can give a deletion code
      Parameters:
      id - ID of the entity which should be deleted
      code - Deletion code
      Throws:
      PersistenceException - raised in case of errors in the database
    • deleteAll

      void deleteAll(Collection<T> entities) throws PersistenceException
      Deletes all entries form the database
      Parameters:
      entities - The entities to be deleted
      Throws:
      PersistenceException - raised in case of errors in the database
    • deleteAll

      void deleteAll(Collection<T> entities, int code) throws PersistenceException
      Deletes all entries form the database giving a specific deletion code
      Parameters:
      entities - The entities to be deleted
      code - The deletion code
      Throws:
      PersistenceException - raised in case of errors in the database
    • bulkUpdate

      int bulkUpdate(String expression, Map<String,Object> parameters) throws PersistenceException
      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

      int jdbcUpdate(String sql) throws PersistenceException
      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

      int jdbcUpdate(String sql, Map<String,Object> parameters) throws PersistenceException
      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

      Map<String,String> getDatabaseMetadata()
      Retrieves the metadata from the database
      Returns:
      a map of metadata from the database driver