背景
QueryWrapperUtil 是一个imom团队对查询条件封装的工具类,效果是在入参类上打上eq或like等注解,生成查询的QueryWrapper
问题:但由于注解在framework-data上,QueryWrapper在dme-sdk上,导致每个微服务都要新建一个自己的QueryWrapperUtil
迁移
现在在dme-sdk新建了DmeQueryWrapperUtil 工具类、 DmeSelectType 注解、DmeSelectTypeEnum枚举,做统一管理
注意:新的工具和注解等的开头都加了 Dme 做开头,不要和旧的用混了


新功能
DmeQueryWrapperUtil 除了之前提供的查询条件转换的方法外,还新增了两个功能,查询全部和in查询的优化
查询全部
问题:由于idme没有查询全部的功能,我们只能通过多次分页请求查询再组装达到查询全部的效果
DmeQueryWrapperUtil 提供两个方法 listAllByPagination 和 listAllByExecutePagination,都是查询全部,区别是listAllByPagination 是普通的分页查询,listAllByExecutePagination是高代码服务编排的查询
入参有两个
1. 具体mapper
2. 查询参数wrapper
使用示例:

in查询的优化
问题:idme使用in查询时,我们会传入一个list<String>作为入参,当list的长度超过490时,会报错,当list里面有null值,会报错
DmeQueryWrapperUtil 提供 listAllBInQuery方法,会做list的截取,实现查询全部
比如我要通过1000个id查询出1000个计划表详情
入参有三个
1. id列表 idList
2. 计划表mapper inspectPlanObjectItemMapper
3、lamda获取角色表id InspectPlanObjectItem::getInspectPlanObjectId
示例:
