CRUD接口
# Mapper CRUD 接口
说明
- 通用 CRUD 封装BaseEsMapper (opens new window) 接口,为 Easy-Es 启动时自动解析实体对象关系映射转换为 EE 内部对象注入容器
- 泛型 T 为任意实体对象
- insert接口需要区别于MP,具体可看下面insert文档
- 参数 Serializable 为任意类型主键 Easy-Es 不推荐使用复合主键约定每个索引都有自己的唯一 id 主键
- 对象 Wrapper 为 条件构造器
- 针对实体对象T中的
get和set
方法,我们推荐您使用Lombok (opens new window)插件生成,若您采用IDEA自带插件生成,通过Lambda风格获取的字段名称时,会导致部分驼峰命名的字段无法获取正确的字段名. 比如有字段名称叫eName,采用Lombok生成的的get方法为getEName(),但IDEA生成的为geteName(),如此框架底层解析字段名称时就会报错,MP也存在同样问题.
# Insert
// 插入一条记录
Integer insert(T entity);
// 批量插入多条记录
Integer insertBatch(Collection<T> entityList)
1
2
3
4
5
2
3
4
5
# 参数说明
类型 | 参数名 | 描述 |
---|---|---|
T | entity | 实体对象 |
Collection<T> | entityList | 实体对象集合 |
特别注意
- 如果您在insert时传入的entity有id并且该id对应数据已存在,则此次insert实际效果为更新该id对应的数据,并且更新不计入insert接口最后返回的成功总条数.
- 当insert接口如上所述,触发了数据更新逻辑,本次更新字段和全局配置的策略(如NOT_NULL/NOT_EMPTY)等均不生效,若您期望策略生效,可以调用update接口而非insert接口.
- 插入后如需id值可直接从entity中取,用法和MP中一致,批量插入亦可直接从原对象中获取插入成功后的数据id,以上接口返回Integer为成功条数.
# Delete
// 根据 ID 删除
Integer deleteById(Serializable id);
// 根据 entity 条件,删除记录
Integer delete(LambdaEsQueryWrapper<T> wrapper);
// 删除(根据ID 批量删除)
Integer deleteBatchIds(Collection<? extends Serializable> idList);
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 参数说明
类型 | 参数名 | 描述 |
---|---|---|
Wrapper<T> | queryWrapper | 实体包装类 QueryWrapper |
Serializable | id | 主键ID |
Collection<? extends Serializable> | idList | 主键ID列表 |
# Update
//根据 ID 更新
Integer updateById(T entity);
// 根据ID 批量更新
Integer updateBatchByIds(Collection<T> entityList);
// 根据动态条件 更新记录
Integer update(T entity, LambdaEsUpdateWrapper<T> updateWrapper);
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 参数说明
类型 | 参数名 | 描述 |
---|---|---|
T | entity | 实体对象 |
Wrapper<T> | updateWrapper | 实体对象封装操作类 UpdateWrapper |
Collection<T> | entityList | 实体对象集合 |
# Select
// 获取总数
Long selectCount(LambdaEsQueryWrapper<T> wrapper);
// 根据 ID 查询
T selectById(Serializable id);
// 查询(根据ID 批量查询)
List<T> selectBatchIds(Collection<? extends Serializable> idList);
// 根据动态查询条件,查询一条记录 若存在多条记录 会报错
T selectOne(LambdaEsQueryWrapper<T> wrapper);
// 根据动态查询条件,查询全部记录
List<T> selectList(LambdaEsQueryWrapper<T> wrapper);
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 参数说明
类型 | 参数名 | 描述 |
---|---|---|
Wrapper<T> | queryWrapper | 实体包装类 QueryWrapper |
Serializable | id | 主键ID |
Collection<? extends Serializable> | idList | 主键ID列表 |
提示
- CRUD接口用法基本与MP一致
- 用户需要继承的Mapper为BaseEsMapper,而非BaseMapper
- EE没有提供Service层,而是把MP中一些Service层的方法直接下沉到Mapper层了,用户用起来会更方便
帮助我们改善此文档 (opens new window)
上次更新: 2024/05/18