Class AbstractService<T,​I extends Serializable,​M extends BaseMapper<T,​I>>

  • Type Parameters:
    T - 实体类类型
    I - 主键类型
    M - Mapper类型
    All Implemented Interfaces:
    BaseService<T,​I>, EntityService<T,​I>, ExampleService<T,​I>

    public abstract class AbstractService<T,​I extends Serializable,​M extends BaseMapper<T,​I>>
    extends Object
    implements BaseService<T,​I>
    基础方法实现,推荐自己的实现类继承该类

    例如自己的接口:

       public interface UserService {
         User save(User user);
       }
     
    对应的实现类:
       public class UserServiceImpl extends AbstractService<User, Long, UserMapper> implements UserService {
           //由于 User save(User user); 和默认的 T save(T entity) 方法一致,所以不需要提供实现,可以用默认方法
       }
     
    Author:
    liuzh
    • Field Detail

    • Constructor Detail

      • AbstractService

        public AbstractService()
    • Method Detail

      • setBaseMapper

        @Autowired
        public void setBaseMapper​(M baseMapper)
      • save

        public T save​(T entity)
        Description copied from interface: EntityService
        保存(所有字段)
        Specified by:
        save in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        Returns:
        返回保存成功后的实体,远程服务调用时,由于序列化和反序列化,入参和返回值不是同一个对象
      • saveSelective

        public T saveSelective​(T entity)
        Description copied from interface: EntityService
        保存(非空字段,空的字段会使用数据库设置的默认值,但是不会字段反写)
        Specified by:
        saveSelective in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        Returns:
        返回保存成功后的实体,远程服务调用时,由于序列化和反序列化,入参和返回值不是同一个对象
      • update

        public T update​(T entity)
        Description copied from interface: EntityService
        更新(所有字段)
        Specified by:
        update in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        Returns:
        返回更新成功后的实体,远程服务调用时,由于序列化和反序列化,入参和返回值不是同一个对象
      • update

        public T update​(T entity,
                        Fn<T,​Object>... updateFields)
        Description copied from interface: EntityService
        更新(指定字段)
        Specified by:
        update in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        updateFields - 需要更新的字段
        Returns:
        返回更新成功后的实体,远程服务调用时,由于序列化和反序列化,入参和返回值不是同一个对象
      • updateSelective

        public T updateSelective​(T entity)
        Description copied from interface: EntityService
        更新(非空字段)
        Specified by:
        updateSelective in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        Returns:
        返回更新成功后的实体,远程服务调用时,由于序列化和反序列化,入参和返回值不是同一个对象
      • updateSelective

        public T updateSelective​(T entity,
                                 Fn<T,​Object>... forceUpdateFields)
        Description copied from interface: EntityService
        更新(非空字段),指定的强制更新字段不区分是否为空
        Specified by:
        updateSelective in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        forceUpdateFields - 强制更新的字段,不区分字段是否为 null
        Returns:
        返回更新成功后的实体,远程服务调用时,由于序列化和反序列化,入参和返回值不是同一个对象
      • pkHasValue

        public boolean pkHasValue​(T entity)
        Description copied from interface: EntityService
        主键是否有值
        Specified by:
        pkHasValue in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        Returns:
        true有值,false为空
      • saveOrUpdate

        public T saveOrUpdate​(T entity)
        Description copied from interface: EntityService
        保存或更新(全部字段),当主键不存在时保存,存在时更新
        Specified by:
        saveOrUpdate in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        Returns:
        返回保存或更新成功后的实体,远程服务调用时,由于序列化和反序列化,入参和返回值不是同一个对象
      • saveOrUpdateSelective

        public T saveOrUpdateSelective​(T entity)
        Description copied from interface: EntityService
        保存或更新(非空字段),当主键不存在时保存,存在时更新
        Specified by:
        saveOrUpdateSelective in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        Returns:
        返回保存或更新成功后的实体,远程服务调用时,由于序列化和反序列化,入参和返回值不是同一个对象
      • delete

        public int delete​(T entity)
        Description copied from interface: EntityService
        根据当前类的值作为条件进行删除(注意:当所有字段都没有值时可能会清库)
        Specified by:
        delete in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        Returns:
        返回大于 1成功,0失败
      • deleteById

        public int deleteById​(I id)
        Description copied from interface: EntityService
        根据主键进行删除
        Specified by:
        deleteById in interface EntityService<T,​I extends Serializable>
        Parameters:
        id - 指定的主键
        Returns:
        返回 1成功,0失败抛出异常
      • deleteByFieldList

        public <F> int deleteByFieldList​(Fn<T,​F> field,
                                         Collection<F> fieldValueList)
        Description copied from interface: EntityService
        根据指定字段集合删除
        Specified by:
        deleteByFieldList in interface EntityService<T,​I extends Serializable>
        Type Parameters:
        F - 字段值类型
        Parameters:
        field - 字段
        fieldValueList - 字段值集合
        Returns:
        删除数据的条数
      • findById

        public T findById​(I id)
        根据指定的主键查询
        Specified by:
        findById in interface EntityService<T,​I extends Serializable>
        Parameters:
        id - 主键
        Returns:
        实体
      • findOne

        public T findOne​(T entity)
        以当前类作为条件查询一个,当结果多于1个时出错
        Specified by:
        findOne in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        Returns:
        实体
      • findList

        public List<T> findList​(T entity)
        以当前类作为条件查询
        Specified by:
        findList in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        Returns:
        实体集合
      • findByFieldList

        public <F> List<T> findByFieldList​(Fn<T,​F> field,
                                           Collection<F> fieldValueList)
        根据指定字段集合查询
        Specified by:
        findByFieldList in interface EntityService<T,​I extends Serializable>
        Type Parameters:
        F - 字段值类型
        Parameters:
        field - 字段
        fieldValueList - 字段值集合
        Returns:
        实体集合
      • count

        public long count​(T entity)
        以当前类作为条件查询总数
        Specified by:
        count in interface EntityService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        Returns:
        实体集合
      • delete

        public int delete​(Example<T> example)
        根据 example 条件批量删除
        Specified by:
        delete in interface ExampleService<T,​I extends Serializable>
        Parameters:
        example - 查询条件
        Returns:
        返回大于0成功,0失败
      • update

        public int update​(T entity,
                          Example<T> example)
        根据 example 查询条件批量更新(所有字段)
        Specified by:
        update in interface ExampleService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        example - 查询条件
        Returns:
        返回大于0成功,0失败
      • updateSelective

        public int updateSelective​(T entity,
                                   Example<T> example)
        根据 example 查询条件批量更新(非空字段)
        Specified by:
        updateSelective in interface ExampleService<T,​I extends Serializable>
        Parameters:
        entity - 实体类
        example - 查询条件
        Returns:
        返回大于0成功,0失败
      • findOne

        public T findOne​(Example<T> example)
        根据 example 条件查询一个,当结果多于1个时出错
        Specified by:
        findOne in interface ExampleService<T,​I extends Serializable>
        Parameters:
        example - 查询条件
        Returns:
        实体
      • count

        public long count​(Example<T> example)
        根据 example 查询总数
        Specified by:
        count in interface ExampleService<T,​I extends Serializable>
        Parameters:
        example - 查询条件
        Returns:
        总数