Interface EntityService<T extends Serializable>

Type Parameters:
T - 实体类型,必须实现Serializable接口
All Superinterfaces:
ExtService<T>
All Known Subinterfaces:
IdEntityService<T>, IdNameEntityService<T>, NameEntityService<T>

public interface EntityService<T extends Serializable> extends ExtService<T>
实体服务接口,提供基于泛型实体的通用数据库操作方法
Author:
Kerbores(kerbores@gmail.com)
  • Method Details

    • getEntityType

      default Class<T> getEntityType()
      获取实体类型
      Specified by:
      getEntityType in interface ExtService<T extends Serializable>
      Returns:
      实体类的Class对象
      See Also:
    • getEntity

      default org.nutz.dao.entity.Entity<T> getEntity()
      获取实体对象
      Specified by:
      getEntity in interface ExtService<T extends Serializable>
      Returns:
      实体对象
      See Also:
    • clear

      default int clear(org.nutz.dao.Condition cnd)
      批量删除
      Specified by:
      clear in interface ExtService<T extends Serializable>
      Parameters:
      cnd - 删除条件
      Returns:
      删除的条数
    • clear

      default int clear()
      全表删除
      Specified by:
      clear in interface ExtService<T extends Serializable>
      Returns:
      删除的条数
    • query

      default List<T> query(org.nutz.dao.Condition cnd, org.nutz.dao.pager.Pager pager)
      根据条件分页查询
      Specified by:
      query in interface ExtService<T extends Serializable>
      Parameters:
      cnd - 查询条件
      pager - 分页对象
      Returns:
      查询结果列表
    • each

      default int each(org.nutz.dao.Condition cnd, org.nutz.dao.pager.Pager pager, org.nutz.lang.Each<T> callback)
      遍历条件分页查询结果
      Parameters:
      cnd - 查询条件
      pager - 分页对象
      callback - 遍历回调函数
      Returns:
      遍历的总条数
    • count

      default int count(org.nutz.dao.Condition cnd)
      根据条件统计符合条件的记录数
      Specified by:
      count in interface ExtService<T extends Serializable>
      Parameters:
      cnd - 查询条件
      Returns:
      记录数
    • countByNutz

      default int countByNutz()
      全表的总记录数
      Returns:
      总记录数
    • fetch

      default T fetch(org.nutz.dao.Condition cnd)
      查出符合条件的第一条记录
      Parameters:
      cnd - 查询条件
      Returns:
      实体对象,如不存在则为null
    • fetchx

      default T fetchx(Object... pks)
      复合主键专用查询方法
      Parameters:
      pks - 键值数组
      Returns:
      对象 T
    • exists

      default boolean exists(Object... pks)
      判断复合主键对应的记录是否存在
      Parameters:
      pks - 键值数组
      Returns:
      存在返回true,否则返回false
    • update

      default int update(org.nutz.dao.Chain chain, org.nutz.dao.Condition cnd)
      批量更新
      Parameters:
      chain - 设置值的键值对
      cnd - 需要更新的条件语句
      Returns:
      更新的记录数
    • updateRelation

      default int updateRelation(String regex, org.nutz.dao.Chain chain, org.nutz.dao.Condition cnd)
      更新@ManyMany关联表中的数据
      Parameters:
      regex - 关联字段的匹配正则表达式,如果为null则代表全部
      chain - 键值对
      cnd - 条件语句
      Returns:
      更新的记录数
    • deletex

      default int deletex(Object... pks)
      根据复合主键删除记录
      Parameters:
      pks - 复合主键,必须按@Pk的声明顺序传入
      Returns:
      删除的记录数
    • create

      default org.nutz.dao.entity.Entity<T> create(boolean dropIfExists)
      根据一个实体的配置信息为其创建一张表
      Parameters:
      dropIfExists - 如果表存在是否强制移除
      Returns:
      实体对象
    • insert

      default void insert(org.nutz.dao.Chain chain)
      插入数据到实体对应的表中
      Parameters:
      chain - 数据名值链
    • query

      default List<T> query(org.nutz.dao.Condition cnd)
      查询一组对象。你可以为这次查询设定条件
      Specified by:
      query in interface ExtService<T extends Serializable>
      Parameters:
      cnd - WHERE 条件。如果为 null,将获取全部数据,顺序为数据库原生顺序
      只有在调用这个函数的时候, cnd.limit 才会生效
      Returns:
      对象列表
    • each

      default int each(org.nutz.dao.Condition cnd, org.nutz.lang.Each<T> callback)
      对一组对象进行迭代,这个接口函数非常适用于很大的数据量的集合,因为你不可能把他们都读到内存里
      Parameters:
      cnd - WHERE 条件。如果为 null,将获取全部数据,顺序为数据库原生顺序
      callback - 处理回调
      Returns:
      一共迭代的数量
    • func

      default int func(String funcName, String fieldName)
      对某一个对象字段,进行计算
      Parameters:
      funcName - 计算函数名,请确保你的数据库是支持这个函数的
      fieldName - 对象 java 字段名
      Returns:
      计算结果
    • func

      default int func(String funcName, String fieldName, org.nutz.dao.Condition cnd)
      对某一个对象字段,进行计算
      Parameters:
      funcName - 计算函数名,请确保你的数据库是支持这个函数的
      fieldName - 对象 java 字段名
      cnd - 过滤条件
      Returns:
      计算结果
    • getObject

      default T getObject(ResultSet rs, org.nutz.dao.FieldMatcher fm)
      从一个 ResultSet 中获取一个对象

      因为 Dao 接口可以知道一个 POJO 的映射细节,这个函数可以帮你节省一点体力

      Parameters:
      rs - 结果集
      fm - 字段过滤器
      Returns:
      对象
    • getObject

      default T getObject(ResultSet rs, org.nutz.dao.FieldMatcher fm, String prefix)
      从一个 ResultSet 中获取一个对象,支持字段前缀
      Parameters:
      rs - 结果集
      fm - 字段过滤器
      prefix - 字段前缀
      Returns:
      对象
    • _query

      default List<T> _query(org.nutz.dao.Condition cnd, org.nutz.dao.pager.Pager pager, org.nutz.dao.FieldMatcher matcher)
      根据条件和字段匹配器分页查询
      Parameters:
      cnd - 查询条件
      pager - 分页对象
      matcher - 字段匹配器
      Returns:
      查询结果列表
    • _query

      default List<T> _query(org.nutz.dao.Condition cnd, org.nutz.dao.pager.Pager pager, String regex)
      根据条件和正则表达式分页查询
      Parameters:
      cnd - 查询条件
      pager - 分页对象
      regex - 正则表达式
      Returns:
      查询结果列表
    • _insert

      default T _insert(T obj)
      插入对象
      Parameters:
      obj - 待插入的对象
      Returns:
      插入后的对象
    • _fastInsert

      default T _fastInsert(T obj)
      快速插入对象
      Parameters:
      obj - 待插入的对象
      Returns:
      插入后的对象
    • _insert

      default T _insert(T obj, org.nutz.dao.FieldFilter filter)
      使用字段过滤器插入对象
      Parameters:
      obj - 待插入的对象
      filter - 字段过滤器
      Returns:
      插入后的对象
    • _insert

      default T _insert(T t, boolean ignoreNull, boolean ignoreZero, boolean ignoreBlankStr)
      插入对象,可指定忽略规则
      Parameters:
      t - 待插入的对象
      ignoreNull - 是否忽略null值
      ignoreZero - 是否忽略0值
      ignoreBlankStr - 是否忽略空字符串
      Returns:
      插入后的对象
    • _insertWith

      default T _insertWith(T obj, String regex)
      插入对象及其关联对象
      Parameters:
      obj - 待插入的对象
      regex - 关联字段正则表达式
      Returns:
      插入后的对象
    • _insertLinks

      default T _insertLinks(T obj, String regex)
      插入对象的关联链接
      Parameters:
      obj - 待插入的对象
      regex - 关联字段正则表达式
      Returns:
      插入后的对象
    • _insertRelation

      default T _insertRelation(T obj, String regex)
      插入对象的关联关系
      Parameters:
      obj - 待插入的对象
      regex - 关联字段正则表达式
      Returns:
      插入后的对象
    • _update

      default int _update(T obj)
      更新对象
      Parameters:
      obj - 待更新的对象
      Returns:
      更新的记录数
    • _update

      default int _update(T obj, String regex)
      根据正则表达式更新对象
      Parameters:
      obj - 待更新的对象
      regex - 关联字段正则表达式
      Returns:
      更新的记录数
    • _updateIgnoreNull

      default int _updateIgnoreNull(Object obj)
      更新对象,忽略null值
      Parameters:
      obj - 待更新的对象
      Returns:
      更新的记录数
    • _updateWith

      default T _updateWith(T obj, String regex)
      更新对象及其关联对象
      Parameters:
      obj - 待更新的对象
      regex - 关联字段正则表达式
      Returns:
      更新后的对象
    • _updateLinks

      default T _updateLinks(T obj, String regex)
      更新对象的关联链接
      Parameters:
      obj - 待更新的对象
      regex - 关联字段正则表达式
      Returns:
      更新后的对象
    • _delete

      default int _delete(T obj)
      删除对象
      Parameters:
      obj - 待删除的对象
      Returns:
      删除的记录数
    • _deleteWith

      default int _deleteWith(T obj, String regex)
      删除对象及其关联对象
      Parameters:
      obj - 待删除的对象
      regex - 关联字段正则表达式
      Returns:
      删除的记录数
    • _deleteLinks

      default int _deleteLinks(T obj, String regex)
      删除对象的关联链接
      Parameters:
      obj - 待删除的对象
      regex - 关联字段正则表达式
      Returns:
      删除的记录数
    • _fetch

      default T _fetch(T obj)
      获取对象
      Parameters:
      obj - 查询条件对象
      Returns:
      查询到的对象
    • _fetchLinks

      default T _fetchLinks(T obj, String regex)
      获取对象的关联链接
      Parameters:
      obj - 查询对象
      regex - 关联字段正则表达式
      Returns:
      查询到的对象
    • _fetchLinks

      default T _fetchLinks(T obj, String regex, org.nutz.dao.Condition cnd)
      根据条件获取对象的关联链接
      Parameters:
      obj - 查询对象
      regex - 关联字段正则表达式
      cnd - 查询条件
      Returns:
      查询到的对象
    • _clearLinks

      default T _clearLinks(T obj, String regex)
      清除对象的关联链接
      Parameters:
      obj - 查询对象
      regex - 关联字段正则表达式
      Returns:
      清除后的对象
    • setExpert

      default void setExpert(T obj) throws Exception
      设置专家模式
      Parameters:
      obj - 对象
      Throws:
      Exception - 设置过程中可能抛出的异常
    • queryByNutz

      default List<T> queryByNutz()
      查询所有记录
      Returns:
      查询结果列表