Class ValidatorBibernateSession

java.lang.Object
io.github.blyznytsiaorg.bibernate.session.ValidatorBibernateSession
All Implemented Interfaces:
BibernateSession, Closeable, AutoCloseable

public class ValidatorBibernateSession extends Object implements BibernateSession
Wrapper class that provides validation functionality for a Bibernate session. It delegates method calls to an underlying Bibernate session while performing validation checks.
Since:
1.0
Author:
Blyzhnytsia Team
  • Field Details

  • Constructor Details

    • ValidatorBibernateSession

      public ValidatorBibernateSession()
  • Method Details

    • findById

      public <T> Optional<T> findById(Class<T> entityClass, Object primaryKey)
      Description copied from interface: BibernateSession
      Finds an entity by its primary key.
      Specified by:
      findById in interface BibernateSession
      Type Parameters:
      T - the type of the entity
      Parameters:
      entityClass - the class of the entity
      primaryKey - the primary key of the entity
      Returns:
      an Optional containing the found entity, or empty if not found
    • findAll

      public <T> List<T> findAll(Class<T> entityClass)
      Description copied from interface: BibernateSession
      Retrieves all entities of a specified type from the data store.
      Specified by:
      findAll in interface BibernateSession
      Type Parameters:
      T - The generic type representing the entity class.
      Parameters:
      entityClass - The class of the entity.
      Returns:
      A list of all entities of the specified type in the data store.
    • findAllById

      public <T> List<T> findAllById(Class<T> entityClass, Collection<Object> primaryKeys)
      Description copied from interface: BibernateSession
      Retrieves entities based on a collection of primary keys.
      Specified by:
      findAllById in interface BibernateSession
      Type Parameters:
      T - The generic type representing the entity class.
      Parameters:
      entityClass - The class of the entity.
      primaryKeys - A collection of primary keys for identifying and retrieving specific records.
      Returns:
      A list of entities matching the provided collection of primary keys.
    • findAllByColumnValue

      public <T> List<T> findAllByColumnValue(Class<T> entityClass, String columnName, Object columnValue)
      Description copied from interface: BibernateSession
      Finds all entities of a given class with a specified column value.
      Specified by:
      findAllByColumnValue in interface BibernateSession
      Type Parameters:
      T - the type of the entity
      Parameters:
      entityClass - the class of the entity
      columnName - the name of the column to match
      columnValue - the value to match
      Returns:
      a list of entities matching the criteria
    • findByWhere

      public <T> List<T> findByWhere(Class<T> entityClass, String whereQuery, Object[] bindValues)
      Description copied from interface: BibernateSession
      Finds entities of a given class based on a custom WHERE clause.
      Specified by:
      findByWhere in interface BibernateSession
      Type Parameters:
      T - the type of the entity
      Parameters:
      entityClass - the class of the entity
      whereQuery - the WHERE clause to apply
      bindValues - values to bind to the query parameters
      Returns:
      a list of entities matching the criteria
    • findByJoinTableField

      public <T> List<T> findByJoinTableField(Class<T> entityClass, Field field, Object... bindValues)
      Description copied from interface: BibernateSession
      Finds entities of a given class based on a join table field.
      Specified by:
      findByJoinTableField in interface BibernateSession
      Type Parameters:
      T - the type of the entity
      Parameters:
      entityClass - the class of the entity
      field - the field to join on
      bindValues - values to bind to the query parameters
      Returns:
      a list of entities matching the criteria
    • findByWhereJoin

      public <T> Optional<T> findByWhereJoin(Class<T> entityClass, Object[] bindValues)
      Specified by:
      findByWhereJoin in interface BibernateSession
    • findByQuery

      public <T> List<T> findByQuery(Class<T> entityClass, String query, Object[] bindValues)
      Description copied from interface: BibernateSession
      Finds entities of a given class based on a custom query.
      Specified by:
      findByQuery in interface BibernateSession
      Type Parameters:
      T - the type of the entity
      Parameters:
      entityClass - the class of the entity
      query - the custom query to execute
      bindValues - values to bind to the query parameters
      Returns:
      a list of entities matching the criteria
    • update

      public <T> void update(Class<T> entityClass, Object entity)
      Updates the entity of the specified class in the database. This method ensures that both the entity class and the entity instance are not null before proceeding with the update operation. Additionally, it verifies that the entity has a strategy generator for its ID or that the ID value is not null.
      Specified by:
      update in interface BibernateSession
      Type Parameters:
      T - the type of the entity
      Parameters:
      entityClass - the class of the entity to be updated
      entity - the entity instance to be updated
      Throws:
      NullPointerException - if either entityClass or entity is null
      IllegalArgumentException - if the entity does not have a strategy generator for its ID and the ID value is null
    • find

      public int find(String query, Object[] bindValues)
      Description copied from interface: BibernateSession
      Finds the number of records returned by a custom query.
      Specified by:
      find in interface BibernateSession
      Parameters:
      query - the custom query to execute
      bindValues - values to bind to the query parameters
      Returns:
      the number of records returned by the query
    • save

      public <T> T save(Class<T> entityClass, T entity)
      Saves the given entity to the database.

      This method ensures that both the entity class and the entity instance are not null before proceeding with the save operation. Additionally, it verifies that the entity has a strategy generator for its ID or that the ID value is not null.

      Specified by:
      save in interface BibernateSession
      Type Parameters:
      T - the type of the entity
      Parameters:
      entityClass - the class of the entity to be saved
      entity - the entity instance to be saved
      Returns:
      the saved entity
      Throws:
      NullPointerException - if either entityClass or entity is null
      IllegalArgumentException - if the entity does not have a strategy generator for its ID and the ID value is null
    • saveAll

      public <T> void saveAll(Class<T> entityClass, Collection<T> entities)
      Saves all entities in the provided collection to the database.

      This method ensures that the entity class is not null before proceeding with the save operation. Additionally, it verifies that each entity in the collection has a strategy generator for its ID or that the ID value is not null.

      Specified by:
      saveAll in interface BibernateSession
      Type Parameters:
      T - the type of the entities
      Parameters:
      entityClass - the class of the entities to be saved
      entities - the collection of entities to be saved
      Throws:
      NullPointerException - if entityClass is null
      IllegalArgumentException - if any entity in the collection does not have a strategy generator for its ID and the ID value is null
    • deleteById

      public <T> void deleteById(Class<T> entityClass, Object primaryKey)
      Description copied from interface: BibernateSession
      Deletes an entity from the data store by its primary key.
      Specified by:
      deleteById in interface BibernateSession
      Type Parameters:
      T - the type of the entity
      Parameters:
      entityClass - the class of the entity
      primaryKey - the primary key of the entity to delete
    • deleteAllById

      public <T> void deleteAllById(Class<T> entityClass, Collection<Object> primaryKeys)
      Description copied from interface: BibernateSession
      Deletes records from the specified table based on the provided collection of primary key values.
      Specified by:
      deleteAllById in interface BibernateSession
      Type Parameters:
      T - The generic type representing the entity class.
      Parameters:
      entityClass - The Class object representing the type of entities for which records will be deleted.
      primaryKeys - A collection of primary key values identifying the records to be deleted.
    • deleteByColumnValue

      public <T> List<T> deleteByColumnValue(Class<T> entityClass, String columnName, Object columnValue)
      Description copied from interface: BibernateSession
      Deletes records from the specified table where the value in the specified column matches the given criteria.
      Specified by:
      deleteByColumnValue in interface BibernateSession
      Type Parameters:
      T - The generic type representing the entity class.
      Parameters:
      entityClass - The Class object representing the type of entities for which records will be deleted.
      columnName - The name of the column used in the WHERE condition for deletion.
      columnValue - The value to match in the specified column for deletion.
      Returns:
      A list of entities of type T that were deleted from the table.
    • delete

      public <T> void delete(Class<T> entityClass, T entity)
      Description copied from interface: BibernateSession
      Deletes an entity from the data store.
      Specified by:
      delete in interface BibernateSession
      Type Parameters:
      T - the type of the entity
      Parameters:
      entityClass - the class of the entity
      entity - the entity to delete
    • deleteAll

      public <T> void deleteAll(Class<T> entityClass, Collection<T> entities)
      Description copied from interface: BibernateSession
      Deletes all records associated with the provided entities from the specified table.
      Specified by:
      deleteAll in interface BibernateSession
      Type Parameters:
      T - The generic type representing the entity class.
      Parameters:
      entityClass - The Class object representing the type of entities to be deleted.
      entities - A collection of entities whose corresponding records will be deleted.
    • flush

      public void flush()
      Description copied from interface: BibernateSession
      Flushes changes to the underlying database. This method synchronizes the state of the Bibernate session with the database. Any changes that have been queued for insertion, update, or deletion are executed immediately.
      Specified by:
      flush in interface BibernateSession
    • close

      public void close()
      Description copied from interface: BibernateSession
      Closes the session, releasing any resources associated with it.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface BibernateSession
      Specified by:
      close in interface Closeable
    • getDao

      public Dao getDao()
      Description copied from interface: BibernateSession
      Gets the Data Access Object (DAO) associated with this session.
      Specified by:
      getDao in interface BibernateSession
      Returns:
      the DAO instance
    • startTransaction

      public void startTransaction() throws SQLException
      Description copied from interface: BibernateSession
      Starts a new transaction. This method should be called before any operations that are meant to be part of a transaction.
      Specified by:
      startTransaction in interface BibernateSession
      Throws:
      SQLException - if a database access error occurs or this method is called on a closed connection
    • commitTransaction

      public void commitTransaction() throws SQLException
      Description copied from interface: BibernateSession
      Commits the current transaction. This method should be called to make all changes made within the transaction permanent.
      Specified by:
      commitTransaction in interface BibernateSession
      Throws:
      SQLException - if a database access error occurs, the connection is closed or this method is called when no transaction is active
    • rollbackTransaction

      public void rollbackTransaction() throws SQLException
      Description copied from interface: BibernateSession
      Rolls back the current transaction. This method should be called if any errors occur within the transaction and the changes made need to be discarded.
      Specified by:
      rollbackTransaction in interface BibernateSession
      Throws:
      SQLException - if a database access error occurs, the connection is closed or this method is called when no transaction is active