Skip to Content
文档开始Service 方法概览

构建专业代码应用

EntityService 通用方法

count

/** * 统计符合给定过滤条件的行数。 * * @param filters 过滤条件 * @return 符合条件的总行数 */ Long count(Filters filters);

createOne

/** * 创建一个新的实体并返回其 ID。 * * @param entity 要创建的实体 * @return 新创建实体的 ID */ K createOne(T entity);

createOneAndFetch

/** * 创建一个新的实体,并返回带有自动生成字段值的实体对象。 * * @param entity 要创建的实体 * @return 新创建的实体对象 */ T createOneAndFetch(T entity);

createList

/** * 批量创建多个实体,并返回这些实体的 ID 列表。 * * @param entities 要创建的实体列表 * @return 创建后的实体 ID 列表 */ List<K> createList(List<T> entities);

createListAndFetch

/** * 批量创建多个实体,并返回包含自动生成字段值的实体对象列表。 * * @param entities 要创建的实体列表 * @return 新创建的实体对象列表 */ List<T> createListAndFetch(List<T> entities);

getById (单个ID)

/** * 根据 ID 获取实体。 * ManyToOne/OneToOne/Option/MultiOption 字段保留原始值。 * * @param id 要获取的实体 ID * @return 如果找到则返回包含实体的 Optional,否则返回空 */ Optional<T> getById(K id);

getById (含子查询 SubQueries)

/** * 根据 ID 获取实体,可使用 subQueries 展开关联字段。 * ManyToOne/OneToOne/Option/MultiOption 字段保留原始值。 * * @param id 要获取的实体 ID * @param subQueries 用于展开关联字段的对象 * @return 如果找到则返回包含实体的 Optional,否则返回空 */ Optional<T> getById(K id, SubQueries subQueries);

getById (指定字段)

/** * 根据 ID 获取实体,并可指定要读取的字段。 * 如果未指定字段,则默认读取所有可访问字段。 * ManyToOne/OneToOne/Option/MultiOption 字段保留原始值。 * * @param id 要获取的实体 ID * @param fields 要读取的字段列表 * @return 如果找到则返回包含实体的 Optional,否则返回空 */ Optional<T> getById(K id, Collection<String> fields);

getByIds (ID列表)

/** * 根据 ID 列表获取多个实体。 * ManyToOne/OneToOne/Option/MultiOption 字段保留原始值。 * * @param ids 要获取的实体 ID 列表 * @return 实体列表 */ List<T> getByIds(List<K> ids);

getByIds (含子查询 SubQueries)

/** * 根据 ID 列表获取多个实体,并可使用 subQueries 展开关联字段。 * ManyToOne/OneToOne/Option/MultiOption 字段保留原始值。 * * @param ids 实体 ID 列表 * @param subQueries 用于展开关联字段的对象 * @return 实体列表 */ List<T> getByIds(List<K> ids, SubQueries subQueries);

getByIds (指定字段)

/** * 根据 ID 列表获取多个实体,并可指定要读取的字段。 * 如果未指定字段,则默认读取所有可访问字段。 * ManyToOne/OneToOne/Option/MultiOption 字段保留原始值。 * * @param ids 实体 ID 列表 * @param fields 要读取的字段列表 * @return 实体列表 */ List<T> getByIds(List<K> ids, Collection<String> fields);

getDistinctFieldValue

/** * 获取指定字段的唯一值列表,并根据给定条件进行过滤。 * * @param <V> 字段值的类型 * @param fieldReference 要获取值的字段引用 * @param filters 可选的过滤条件 * @return 唯一字段值的列表 */ <V extends Serializable, R> List<V> getDistinctFieldValue(SFunction<T, R> fieldReference, Filters filters);

getFieldValue

/** * 根据实体 ID 和字段方法引用,获取指定字段的值。 * ManyToOne/OneToOne/Option/MultiOption 字段保留原始值。 * * @param id 实体 ID * @param method 字段访问方法(Lambda 表达式或方法引用) * @param <V> 字段值类型 * @param <R> 字段访问方法的返回类型 * @return 字段的值 */ <V extends Serializable, R> V getFieldValue(K id, SFunction<T, R> method);

getIds

/** * 根据过滤条件获取符合条件的实体 ID 列表。 * * @param filters 要应用的过滤条件 * @return 匹配的实体 ID 列表 */ List<K> getIds(Filters filters);

getRelatedIds (字段方法引用)

/** * 根据过滤条件,获取 ManyToOne/OneToOne 关联字段的去重 ID 列表。 * * @param <EK> 关联实体 ID 类型 * @param <R> 字段访问方法的返回类型 * @param filters 过滤条件 * @param method 字段访问方法(Lambda 表达式或方法引用) * @return 去重的关联实体 ID 列表 */ <EK extends Serializable, R> List<EK> getRelatedIds(Filters filters, SFunction<T, R> method);

getRelatedIds (字段名)

/** * 根据过滤条件和字段名,获取 ManyToOne/OneToOne 关联字段的去重 ID 列表。 * * @param <EK> 关联实体 ID 类型 * @param filters 过滤条件 * @param fieldName 关联字段名称 * @return 去重的关联实体 ID 列表 */ <EK extends Serializable> List<EK> getRelatedIds(Filters filters, String fieldName);

updateOne (忽略 null)

/** * 根据实体 ID 更新已有实体,忽略空值(null)。 * * @param entity 包含更新数据的实体 * @return 若更新成功返回 true,否则抛出异常 */ boolean updateOne(T entity);

updateOne (可选忽略 null)

/** * 根据实体 ID 更新已有实体,可选择是否忽略空值(null)。 * * @param entity 包含更新数据的实体 * @param ignoreNull 若为 true,则忽略空值;否则空值将覆盖原值 * @return 若更新成功返回 true,否则抛出异常 */ boolean updateOne(T entity, boolean ignoreNull);

updateOneAndFetch (忽略 null)

/** * 根据实体 ID 更新已有实体,忽略空值(null)。 * 返回更新后的实体,包含最新字段值。 * * @param entity 包含更新数据的实体 * @return 更新后的实体(包含最新字段值) */ T updateOneAndFetch(T entity);

updateOneAndFetch (可选忽略 null)

/** * 根据实体 ID 更新已有实体,可选择是否忽略空值(null)。 * 返回更新后的实体,包含最新字段值。 * * @param entity 包含更新数据的实体 * @param ignoreNull 若为 true,则忽略空值;否则空值将覆盖原值 * @return 更新后的实体(包含最新字段值) */ T updateOneAndFetch(T entity, boolean ignoreNull);

updateList (忽略 null)

/** * 批量更新多个实体(根据 ID),忽略空值(null)。 * * @param entities 要更新的实体列表 * @return 若更新成功返回 true,否则抛出异常 */ boolean updateList(List<T> entities);

updateList (可选忽略 null)

/** * 批量更新多个实体(根据 ID),可选择是否忽略空值(null)。 * * @param entities 要更新的实体列表 * @param ignoreNull 若为 true,则忽略空值;否则空值将覆盖原值 * @return 若更新成功返回 true,否则抛出异常 */ boolean updateList(List<T> entities, boolean ignoreNull);

updateListAndFetch (忽略 null)

/** * 批量更新多个实体(根据 ID),忽略空值(null)。 * 返回更新后的实体列表,包含最新字段值。 * * @param entities 要更新的实体列表 * @return 更新后的实体列表(包含最新字段值) */ List<T> updateListAndFetch(List<T> entities);

updateListAndFetch (可选忽略 null)

/** * 批量更新多个实体(根据 ID),可选择是否忽略空值(null)。 * 返回更新后的实体列表,包含最新字段值。 * * @param entities 要更新的实体列表 * @param ignoreNull 若为 true,则忽略空值;否则空值将覆盖原值 * @return 更新后的实体列表(包含最新字段值) */ List<T> updateListAndFetch(List<T> entities, boolean ignoreNull);

updateByFilter

/** * 对符合指定过滤条件的行进行批量更新, * 更新值由字段-值映射提供。 * <p>如果未指定过滤条件,则可能会更新当前用户可见的所有数据。</p> * * @param filters 可选的过滤条件 * @param value 要更新的字段-值映射 * @return 受影响的行数 */ Integer updateByFilter(Filters filters, Map<String, Object> value);

deleteById

/** * 根据实体 ID 删除对应的实体。 * * @param id 要删除的实体 ID * @return 若删除成功返回 true,否则抛出异常 */ boolean deleteById(K id);

deleteByIds

/** * 批量删除多个实体(根据 ID 列表)。 * * @param ids 要删除的实体 ID 列表 * @return 若删除成功返回 true,否则抛出异常 */ boolean deleteByIds(List<K> ids);

deleteByFilters

/** * 根据指定过滤条件删除实体。 * * @param filters 用于匹配实体的过滤条件 * @return 若删除成功返回 true,否则抛出异常 */ boolean deleteByFilters(Filters filters);

searchOne (Filters)

/** * 根据过滤条件查询单个实体。 * 若匹配到多个实体,则抛出异常。 * * @param filters 用于查询的过滤条件 * @return 匹配的单个实体 */ T searchOne(Filters filters);

searchOne (FlexQuery)

/** * 使用指定的 FlexQuery 查询单个实体,可设置需要读取的字段等。 * 若匹配到多个实体,则抛出异常。 * * @param flexQuery 包含字段、过滤条件、排序等信息的 FlexQuery 对象 * @return 匹配的单个实体 */ T searchOne(FlexQuery flexQuery);

searchList (无参)

/** * 无分页查询所有实体(仅限代码调用)。 * 如果结果数量超过 MAX_BATCH_SIZE,会记录错误日志,但不抛出异常。 * * @return 所有实体的列表 */ List<T> searchList();

searchList (Filters)

/** * 根据过滤条件无分页查询实体(仅限代码调用)。 * 如果结果数量超过 MAX_BATCH_SIZE,会记录错误日志,但不抛出异常。 * * @param filters 用于查询的过滤条件 * @return 匹配的实体列表 */ List<T> searchList(Filters filters);

searchList (FlexQuery)

/** * 根据指定的 FlexQuery 无分页查询实体(仅限代码调用)。 * 如果结果数量超过 MAX_BATCH_SIZE,会记录错误日志,但不抛出异常。 * * @param flexQuery 包含字段、过滤条件、排序等信息的 FlexQuery 对象 * @return 匹配的实体列表 */ List<T> searchList(FlexQuery flexQuery);

searchList (FlexQuery, DTO)

/** * 执行无分页的 FlexQuery,并将结果映射为指定的 DTO 类型。 * 如果结果数量超过 MAX_BATCH_SIZE,会记录错误日志,但不抛出异常。 * * @param <R> DTO 类型 * @param flexQuery 包含字段、过滤条件、排序等信息的 FlexQuery 对象 * @param dtoClass 要映射成的 DTO 类型 * @return 指定类型的 DTO 列表 */ <R> List<R> searchList(FlexQuery flexQuery, Class<R> dtoClass);

searchPage (FlexQuery)

/** * 基于 FlexQuery 执行分页查询。 * 分页大小不能超过 MAX_BATCH_SIZE。 * * @param flexQuery 包含字段、过滤条件、排序等信息的 FlexQuery 对象 * @param page 包含分页信息的 Page 对象 * @return 包含查询结果的 Page 对象 */ Page<T> searchPage(FlexQuery flexQuery, Page<T> page);

searchPage (FlexQuery, DTO)

/** * 基于 FlexQuery 执行分页查询,并将结果映射为指定的 DTO 类型。 * 分页大小不能超过 MAX_BATCH_SIZE。 * * @param <R> DTO 类型 * @param flexQuery 包含字段、过滤条件、排序等信息的 FlexQuery 对象 * @param page 包含分页信息的 Page 对象 * @param dtoClass 要映射成的 DTO 类型 * @return 包含查询到的 DTO 对象的 Page */ <R> Page<R> searchPage(FlexQuery flexQuery, Page<R> page, Class<R> dtoClass);

groupById

/** * 根据过滤条件查询实体,并以实体 ID 为键进行分组。 * 如果结果数量超过 MAX_BATCH_SIZE,会记录错误日志,但不抛出异常。 * * @param filters 用于查找实体的过滤条件 * @return 一个 Map,键为实体 ID,值为对应的实体 */ Map<Serializable, T> groupById(Filters filters);
最后更新于