Class JpaCrudService<T,K>

java.lang.Object
com.flowingcode.backendcore.service.JpaCrudService<T,K>
All Implemented Interfaces:
com.flowingcode.backendcore.service.CreationService<T,K>, com.flowingcode.backendcore.service.CrudService<T,K>, com.flowingcode.backendcore.service.DeletionService<T>, com.flowingcode.backendcore.service.QueryService<T,K>, com.flowingcode.backendcore.service.UpdateService<T>

public abstract class JpaCrudService<T,K> extends Object implements com.flowingcode.backendcore.service.CrudService<T,K>
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected org.springframework.data.jpa.domain.Specification<T>
    buildSpecification(com.flowingcode.backendcore.model.QuerySpec spec)
     
    long
    count(com.flowingcode.backendcore.model.QuerySpec filter)
     
    void
    delete(T entity)
     
    void
     
    filter(com.flowingcode.backendcore.model.QuerySpec filter)
     
     
    findById(K id)
     
    protected abstract org.springframework.data.repository.CrudRepository<T,K>
     
    protected abstract org.springframework.data.jpa.repository.JpaSpecificationExecutor<T>
     
    protected K
    getId(T entity)
    Default implementation for obtaining an id from an entity by calling method getId() by reflection
    save(T entity)
     
    void
    update(T entity)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.flowingcode.backendcore.service.QueryService

    filterWithSingleResult
  • Constructor Details

    • JpaCrudService

      public JpaCrudService()
  • Method Details

    • getCrudRepository

      protected abstract org.springframework.data.repository.CrudRepository<T,K> getCrudRepository()
    • getExecutor

      protected abstract org.springframework.data.jpa.repository.JpaSpecificationExecutor<T> getExecutor()
    • buildSpecification

      protected org.springframework.data.jpa.domain.Specification<T> buildSpecification(com.flowingcode.backendcore.model.QuerySpec spec)
    • getId

      protected K getId(T entity)
      Default implementation for obtaining an id from an entity by calling method getId() by reflection
      Parameters:
      entity -
      Returns:
    • findById

      public Optional<T> findById(K id)
      Specified by:
      findById in interface com.flowingcode.backendcore.service.QueryService<T,K>
    • findAll

      public List<T> findAll()
      Specified by:
      findAll in interface com.flowingcode.backendcore.service.QueryService<T,K>
    • filter

      public List<T> filter(com.flowingcode.backendcore.model.QuerySpec filter)
      Specified by:
      filter in interface com.flowingcode.backendcore.service.QueryService<T,K>
    • count

      public long count(com.flowingcode.backendcore.model.QuerySpec filter)
      Specified by:
      count in interface com.flowingcode.backendcore.service.QueryService<T,K>
    • save

      public K save(T entity)
      Specified by:
      save in interface com.flowingcode.backendcore.service.CreationService<T,K>
    • update

      public void update(T entity)
      Specified by:
      update in interface com.flowingcode.backendcore.service.UpdateService<T>
    • delete

      public void delete(T entity)
      Specified by:
      delete in interface com.flowingcode.backendcore.service.DeletionService<T>
    • deleteById

      public void deleteById(K id)
      Specified by:
      deleteById in interface com.flowingcode.backendcore.service.CrudService<T,K>