Class DefaultBaseDao

  • All Implemented Interfaces:
    BaseDao

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

      • em

        protected jakarta.persistence.EntityManager em
    • Constructor Detail

      • DefaultBaseDao

        public DefaultBaseDao()
    • Method Detail

      • 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​(Class<T> entityClass,
                                             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​(Class<T> entityClass,
                                                      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 BaseEntityList<T> readPage​(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​(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.