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 的自动化配置
- 新增配置项