Bean Searcher 是什么?
它是一款专注高级查询的只读 ORM,目的是为了 弥补 传统 ORM 在数据检索领域的不足,只需一行代码,即可为您的应用赋能高级查询,让您脱离加班苦海,有更多的时间去陪恋人、家人和朋友。
- 为您的工作效率提速 100 倍:https://juejin.cn/post/7027733039299952676
- 它与传统 ORM 的区别:https://juejin.cn/post/7092411551507808264
- 超详细文档:https://bs.zhxu.cn/
如果觉得不错点个 STAR 吧 ^_^:
- Github: https://github.com/troyzhxu/bean-searcher
- Gitee: https://gitee.com/troyzhxu/bean-searcher
本次更新内容
✨ Features
-
Bean Searcher
- 新增
IndexArrayParamFilter
: 支持解析形如key[0]=v1 & key[1]=v2
的参数 - 增强
SuffixOpParamFilter
: 使支持将 是否忽略大小写 也合并到一个参数中,例如:name-ct-ic=xxx
- 增强
MetaResolver
: 新增clearCache()
方法,用于手动清除BeanMeta
缓存 - 增强
@DbIgnore
: 支持标注其它自定义注解,使其具有@DbIgnore
的功能 - 新增
AnnoUtils
: 可用于解析组合注解
- 新增
-
Bean Searcher Label(首发)
- 提供
@LabelFor
注解,该注解继承自@DbIgnore
,可用于标注并解析 Label 字段。例如:可将statusName
字段标记为枚举status
的 Label。再如 微服务 场景下:订单服务中的order
表中的有user_id
字段,但username
字段却在会员服务中,查询订单时无法直接联表查询,此时就可以在OrderVO
中将username
字段标记为userId
字段的 Label:@LabelFor("userId")
private Long userId; // 由对应的 LabelLoader 远程获取值后自动装载 @LabelFor("userId") private String username;
- 提供
LabelLoader
接口,可用于加载自定义的 Label,可用于加载本地或远程的 Label 信息 - 提供
EnumLabelLoader
实现,用于加载枚举的 Label,使用方法如下:
@Bean public EnumLabelLoader enumLabelLoader() { return new EnumLabelLoader() // 装载需要在 SearchBean 中被解析的所有枚举 .with(UserType.class, UserType::getLabel) .with(UserStatus.class, UserStatus::getLabel) .with(OrderType.class, OrderType::getLabel) .with(OrderStatus.class, OrderStatus::getLabel); }
- 提供
-
Bean Searcher Boot Starter
- 新增配置项
bean-searcher.params.filter.use-index-array
用于控制是否启用IndexArrayParamFilter
,默认false
- 新增 Bean Searcher Label 的自动化配置
- 新增配置项
-
Bean Searcher Solon Plugin
- 新增配置项
bean-searcher.params.filter.use-index-array
用于控制是否启用IndexArrayParamFilter
,默认false
- 新增 Bean Searcher Label 的自动化配置
- 新增配置项