package com.ecep.contract; import java.util.List; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; public interface IEntityService { /** * 根据ID查询实体 * 注意:如果实体类有关联实体此方法不能使用 @Cacheable 注解 * @param id 实体ID * @return 实体对象 */ T getById(Integer id); Page findAll(Specification spec, Pageable pageable); /** * 根据搜索文本构建了一个特定的规格化查询,以实现对实体模糊搜索 * * @param searchText 要搜索的文本 * @return 规格化查询 */ Specification getSpecification(String searchText); /** * 根据搜索文本查询列表 */ default List search(String searchText) { throw new UnsupportedOperationException(); } void delete(T entity); T save(T entity); }