Class BaseService<T,ID>

java.lang.Object
com.esprit.services.base.BaseService<T,ID>
Type Parameters:
T - The entity type this service manages
ID - The ID type of the entity

public abstract class BaseService<T,ID> extends Object
Generic base service providing common CRUD operations for entities. Reduces boilerplate code across service classes.
  • Field Details

    • logger

      protected static final Logger logger
    • entityManagerFactory

      private static jakarta.persistence.EntityManagerFactory entityManagerFactory
    • entityClass

      protected final Class<T> entityClass
  • Constructor Details

    • BaseService

      protected BaseService(Class<T> entityClass)
  • Method Details

    • getEntityManager

      protected jakarta.persistence.EntityManager getEntityManager()
      Get EntityManager instance
    • create

      public void create(T entity)
      Create a new entity
    • findById

      public Optional<T> findById(ID id)
      Find entity by ID
    • findAll

      public List<T> findAll()
      Find all entities
    • update

      public T update(T entity)
      Update an existing entity
    • deleteById

      public void deleteById(ID id)
      Delete entity by ID
    • delete

      public void delete(T entity)
      Delete an entity
    • existsById

      public boolean existsById(ID id)
      Check if entity exists by ID
    • count

      public long count()
      Count total entities
    • findWithPagination

      public List<T> findWithPagination(int page, int size)
      Find entities with pagination
    • executeQuery

      protected List<T> executeQuery(String jpql, Object... parameters)
      Execute a custom query
    • executeUpdate

      protected int executeUpdate(String jpql, Object... parameters)
      Execute a custom update/delete query
    • batchInsert

      public void batchInsert(List<T> entities, int batchSize)
      Batch insert entities for better performance
    • closeEntityManagerFactory

      public static void closeEntityManagerFactory()
      Close the EntityManagerFactory