Class DefaultBaseDao

java.lang.Object
org.minijax.dao.DefaultBaseDao
All Implemented Interfaces:
BaseDao

public class DefaultBaseDao
extends java.lang.Object
implements BaseDao
The Dao class is the interface for all database access.
  • Field Summary

    Fields
    Modifier and Type Field Description
    protected jakarta.persistence.EntityManager em  
  • Constructor Summary

    Constructors
    Constructor Description
    DefaultBaseDao()  
  • Method Summary

    Modifier and Type Method Description
    <T extends BaseEntity>
    long
    countAll​(java.lang.Class<T> entityClass)
    Counts all rows of a type.
    <T extends BaseEntity>
    T
    create​(T obj)
    Inserts a new instance in the database.
    <T extends BaseEntity>
    void
    delete​(T obj)
    Soft deletes an object.
    jakarta.persistence.EntityManager getEntityManager()  
    <T extends BaseEntity>
    void
    purge​(T obj)
    Hard deletes an object.
    <T extends BaseEntity>
    T
    read​(java.lang.Class<T> entityClass, java.util.UUID id)
    Retrieves an object by ID.
    <T extends NamedEntity>
    T
    readByHandle​(java.lang.Class<T> entityClass, java.lang.String handle)
    Finds a user by handle.
    <T extends BaseEntity>
    java.util.List<T>
    readPage​(java.lang.Class<T> entityClass, int page, int pageSize)
    Returns a page of objects.
    <T extends BaseEntity>
    T
    update​(T obj)
    Updates an object.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • em

      protected jakarta.persistence.EntityManager em
  • Constructor Details

    • DefaultBaseDao

      public DefaultBaseDao()
  • Method Details

    • getEntityManager

      public jakarta.persistence.EntityManager getEntityManager()
      Specified by:
      getEntityManager in interface BaseDao
    • create

      public <T extends BaseEntity> T create​(T obj)
      Inserts a new instance in the database.
      Specified by:
      create in interface BaseDao
      Parameters:
      obj - The object to create.
      Returns:
      The instance with ID.
    • read

      public <T extends BaseEntity> T read​(java.lang.Class<T> entityClass, java.util.UUID id)
      Retrieves an object by ID.
      Specified by:
      read in interface BaseDao
      Parameters:
      id - The ID.
      Returns:
      The object if found; null otherwise.
    • readByHandle

      public <T extends NamedEntity> T readByHandle​(java.lang.Class<T> entityClass, java.lang.String handle)
      Finds a user by handle. Returns the user on success. Returns null on failure.
      Specified by:
      readByHandle in interface BaseDao
      Parameters:
      handle - The user's handle.
      Returns:
      The user on success; null on failure.
    • readPage

      public <T extends BaseEntity> java.util.List<T> readPage​(java.lang.Class<T> entityClass, int page, int pageSize)
      Returns a page of objects.
      Specified by:
      readPage in interface BaseDao
      Parameters:
      entityClass - The entity class.
      page - The page index (zero indexed).
      pageSize - The page size.
      Returns:
      A page of objects.
    • update

      public <T extends BaseEntity> T update​(T obj)
      Updates an object.
      Specified by:
      update in interface BaseDao
      Parameters:
      obj - The object to update.
    • delete

      public <T extends BaseEntity> void delete​(T obj)
      Soft deletes an object. The data is still in the database, but with deleted flag.
      Specified by:
      delete in interface BaseDao
      Parameters:
      obj - The object to delete.
    • purge

      public <T extends BaseEntity> void purge​(T obj)
      Hard deletes an object. This purges the data from the database.
      Specified by:
      purge in interface BaseDao
      Parameters:
      obj - The object to delete.
    • countAll

      public <T extends BaseEntity> long countAll​(java.lang.Class<T> entityClass)
      Counts all rows of a type.
      Specified by:
      countAll in interface BaseDao
      Parameters:
      entityClass - The entity class.
      Returns:
      The count of rows.