Releases: troyzhxu/bean-searcher
Releases · troyzhxu/bean-searcher
v4.3.5
✨ Features
-
Bean Searcher
- 增强
DateParamConvertor
,使同时支持以下 8 种格式的Date
参数值:yyyy-MM-dd
- 例如:2024-01-01
yyyy-M-dd
-- 例如:2024-1-01
(新增)yyyy-MM-d
-- 例如:2024-01-1
(新增)yyyy-M-d
--- 例如:2024-1-1
- (新增)yyyy/MM/dd
- 例如:2024/01/01
yyyy/M/dd
-- 例如:2024/1/01
(新增)yyyy/MM/d
-- 例如:2024/01/1
(新增)yyyy/M/d
--- 例如:2024/1/1
- (新增)
- 增强
DateTimeParamConvertor
,使同时支持以下的 312 种格式的DateTime
参数值:yyyy-MM-dd
---------- 自动补全为yyyy-MM-dd 00:00:00.000
yyyy-MM-dd H
-------- 自动补全为yyyy-MM-dd H:00:00.000
(新增)yyyy-MM-dd HH
------- 自动补全为yyyy-MM-dd HH:00:00.000
yyyy-MM-dd H:m
------ 自动补全为yyyy-MM-dd H:m:00.000
(新增)yyyy-MM-dd HH:m
----- 自动补全为yyyy-MM-dd HH:m:00.000
(新增)yyyy-MM-dd H:mm
----- 自动补全为yyyy-MM-dd H:mm:00.000
(新增)yyyy-MM-dd HH:mm
---- 自动补全为yyyy-MM-dd HH:mm:00.000
yyyy-MM-dd H:m:s
---- 自动补全为yyyy-MM-dd H:m:s.000
(新增)yyyy-MM-dd HH:m:s
--- 自动补全为yyyy-MM-dd HH:m:s.000
(新增)yyyy-MM-dd H:mm:s
--- 自动补全为yyyy-MM-dd H:mm:s.000
(新增)yyyy-MM-dd H:m:ss
--- 自动补全为yyyy-MM-dd H:m:ss.000
(新增)yyyy-MM-dd HH:mm:s
-- 自动补全为yyyy-MM-dd HH:mm:s.000
(新增)yyyy-MM-dd HH:m:ss
-- 自动补全为yyyy-MM-dd HH:m:ss.000
(新增)yyyy-MM-dd H:mm:ss
-- 自动补全为yyyy-MM-dd H:mm:ss.000
(新增)yyyy-MM-dd HH:mm:ss
- 自动补全为yyyy-MM-dd HH:mm:ss.000
yyyy-MM-dd H:m:s.S
------ 例如:2024-01-01 1:1:1.9
(新增)yyyy-MM-dd H:m:s.SS
----- 例如:2024-01-01 1:1:1.09
(新增)yyyy-MM-dd H:m:s.SSS
---- 例如:2024-01-01 1:1:1.009
(新增)yyyy-MM-dd HH:m:s.S
----- 例如:2024-01-01 01:1:1.9
(新增)yyyy-MM-dd HH:m:s.SS
---- 例如:2024-01-01 01:1:1.09
(新增)yyyy-MM-dd HH:m:s.SSS
--- 例如:2024-01-01 01:1:1.009
(新增)yyyy-MM-dd H:mm:s.S
----- 例如:2024-01-01 1:01:1.9
(新增)yyyy-MM-dd H:mm:s.SS
---- 例如:2024-01-01 1:01:1.09
(新增)yyyy-MM-dd H:mm:s.SSS
--- 例如:2024-01-01 1:01:1.009
(新增)yyyy-MM-dd H:m:ss.S
----- 例如:2024-01-01 1:1:01.9
(新增)yyyy-MM-dd H:m:ss.SS
---- 例如:2024-01-01 1:1:01.09
(新增)yyyy-MM-dd H:m:ss.SSS
--- 例如:2024-01-01 1:1:01.009
(新增)yyyy-MM-dd HH:mm:s.S
---- 例如:2024-01-01 01:01:1.9
(新增)yyyy-MM-dd HH:mm:s.SS
--- 例如:2024-01-01 01:01:1.09
(新增)yyyy-MM-dd HH:mm:s.SSS
-- 例如:2024-01-01 01:01:1.009
(新增)yyyy-MM-dd HH:m:ss.S
---- 例如:2024-01-01 01:1:01.9
(新增)yyyy-MM-dd HH:m:ss.SS
--- 例如:2024-01-01 01:1:01.09
(新增)yyyy-MM-dd HH:m:ss.SSS
-- 例如:2024-01-01 01:1:01.009
(新增)yyyy-MM-dd H:mm:ss.S
---- 例如:2024-01-01 1:01:01.9
(新增)yyyy-MM-dd H:mm:ss.SS
--- 例如:2024-01-01 1:01:01.09
(新增)yyyy-MM-dd H:mm:ss.SSS
-- 例如:2024-01-01 1:01:01.009
(新增)yyyy-MM-dd HH:mm:ss.S
--- 例如:2024-01-01 01:01:01.9
(新增)yyyy-MM-dd HH:mm:ss.SS
-- 例如:2024-01-01 01:01:01.09
(新增)yyyy-MM-dd HH:mm:ss.SSS
- 例如:2024-01-01 01:01:01.009
以上是
yyyy-MM-dd [Time]
系列的格式,还支持以下 7 个系列的,每个系列各 39 种格式,不再详细列举:yyyy-M-dd [Time]
-- 系列格式(新增)yyyy-MM-d [Time]
-- 系列格式(新增)yyyy-M-d [Time]
--- 系列格式(新增)yyyy/MM/dd [Time]
- 系列格式(新增)yyyy/M/dd [Time]
-- 系列格式(新增)yyyy/MM/d [Time]
-- 系列格式(新增)yyyy/M/d [Time]
--- 系列格式(新增)
- 增强
-
Bean Searcher Solon Plugin
- 优化配置项,支持在 IDEA 内配置提示项功能(前提是安装 Solon 插件)
🐛 Bug Fixes
- Bean Searcher Boot Starter
- 修复在
v4.3.4
版本后出现的在 IDEA 内配置项提示功能失效的问题:https://gitee.com/troyzhxu/bean-searcher/issues/IB1Y6M
- 修复在
v4.3.4
✨ Features
-
Bean Searcher
- 新增:
OracleTimestampFieldConvertor
, 用于兼容 Oracle 的TIMESTAMP
字段。https://gitee.com/troyzhxu/bean-searcher/issues/IA87WB。 - 优化:
参数构建器
的field(..)
方法,兼容直接使用 实际类型不确定(集合/单值) 的参数值。
var params = MapUtils.builder() // ifTrue 若真,返回 List, 否则返回 单值,类型不固定,v4.3.4 开始兼容这种写法 .field(User::getId, ifTrue ? List.of(1,2,3) : 4) .build();
var params = MapUtils.builder() // ifTrue 若真,返回 原生数组, 否则返回 单值,类型不固定,v4.3.4 开始兼容这种写法 .field(User::getId, ifTrue ? new int[] {1,2,3} : 4) .build();
var params = MapUtils.builder() // ifTrue 若真,返回 对象数组, 否则返回 单值,类型不固定,v4.3.4 开始兼容这种写法 .field(User::getId, ifTrue ? new Integer[] {1,2,3} : 4) .build();
- 新增:
-
Bean Searcher Boot Starter
- 新增配置项
bean-searcher.field-convertor.use-oracle-timestamp
用于控制是否启用OracleTimestampFieldConvertor
,默认true
- 简化
BeanSearcherProperties
类,将内部子类定义成外部类
- 新增配置项
-
Bean Searcher Solon Plugin
- 新增配置项
bean-searcher.field-convertor.use-oracle-timestamp
用于控制是否启用OracleTimestampFieldConvertor
,默认true
- 简化
BeanSearcherProperties
类,将内部子类定义成外部类
- 新增配置项
v4.3.3
v4.3.2
✨ Features
- Bean Searcher
- 增强
DateTimeParamConvertor
: 使支持整型的时间戳参数值
- 增强
- Bean Searcher Boot Starter
- 新增
SpringSqlExecutor
: 支持 Spring 事务的 Sql 执行器,且默认使用 - 新增配置项:
bean-searcher.params.convertor.zone-id
: 可配置DateTimeParamConvertor
使用的时区
- 新增
- Bean Searcher Solon Plugin
- 新增
SolonSqlExecutor
: 支持 Solon 事务的 Sql 执行器,且默认使用 - 新增配置项:
bean-searcher.params.convertor.zone-id
: 可配置DateTimeParamConvertor
使用的时区
- 新增
📚 Document
v4.3.1
v4.3.0
✨ Features
- Bean Searcher
- 优化
BeanMeta
: 新增getSqlSnippets()
方法,用户可以使用该方法获取该实体类上所有已解析的 SQL 片段 - 优化
SearchSql
: 新增getSearchParam()
方法,用户可以在SqlInterceptor
中使用该方法获取到解析后的检索参数 - 增强
MapBuilder
:新增or(..)
与and(..)
方法,用于简化逻辑分组在后端的使用:https://gitee.com/troyzhxu/bean-searcher/issues/I9T66B - 增强
MapBuilder
:新增buildForRpc()
与buildForRpc(RpcNames)
方法,用于构建适用于请求远程 API 服务的参数 - 优化
MapBuilder
:方法field(FieldFn, Collection)
与field(String, Collection)
的第二个参数兼容传入null
的用法 - 增强
DefaultParamResolver
:新增gexprMerge
属性,可用于控制参数构建器中使用groupExpr(..)
方法指定的组表达式是否合并或覆盖前端参数传来的组表达式:https://gitee.com/troyzhxu/bean-searcher/issues/I9TAV6 - 新增
JoinParaSerializer
:拼接参数序列化器,可处理集合类型的参数值,自动将其连接为用英文逗号分隔的字符串 - 新增
ArrayValueParamFilter
:用于配合MapUtils.flat(..)
与MapUtils.flatBuilder(..)
方法,兼容数组参数值的用法,例如前端传参:age=20 & age=30 & age-op=bt - 新增
SuffixOpParamFilter
:用于简化前端传参,例如 age-gt=25 替代 age=25 & age-op=gt - 新增
JsonArrayParamFilter
:用于简化前端传参,例如 age=[20,30] 替代 age-0=20 & age-1=30 - 新增
AlwaysTrue
(恒真:at
)与AlwaysFalse
(恒假:af
)运算符:https://gitee.com/troyzhxu/bean-searcher/issues/I9TMFI - 升级
OracleDialect
:使用新的offset ? rows fetch next ? rows only
分页语法,仅支持 Oracle 12c(2013年6月发布)及以上版本 - 优化
ExprParser
:新增逻辑关系符常量,逻辑表达式中的且关系符&
与 或关系符|
不再支持自定义。 - 优化
FieldParam
:其内部类Value
新增getIndex()
方法
- 优化
- Bean Searcher Boot Starter
- 新增配置项
bean-searcher.params.group.mergeable
指定组表达式是否可合并,默认true
- 新增配置项
bean-searcher.params.filter.use-size-limit
是否启用SizeLimitParamFilter
,默认true
- 新增配置项
bean-searcher.params.filter.use-array-value
是否启用ArrayValueParamFilter
, 默认true
- 新增配置项
bean-searcher.params.filter.use-suffix-op
是否启用SuffixOpParamFilter
, 默认false
- 新增配置项
bean-searcher.params.filter.use-json-array
是否启用JsonArrayParamFilter
, 默认false
- 支持以 Bean 的形式自定义
JoinParaSerializer
组件
- 新增配置项
- Bean Searcher Solon Plugin
- 新增配置项
bean-searcher.params.group.mergeable
指定组表达式是否可合并,默认true
- 新增配置项
bean-searcher.params.filter.use-size-limit
是否启用SizeLimitParamFilter
,默认true
- 新增配置项
bean-searcher.params.filter.use-array-value
是否启用ArrayValueParamFilter
, 默认true
- 新增配置项
bean-searcher.params.filter.use-suffix-op
是否启用SuffixOpParamFilter
, 默认false
- 新增配置项
bean-searcher.params.filter.use-json-array
是否启用JsonArrayParamFilter
, 默认false
- 支持以 Bean 的形式自定义
JoinParaSerializer
组件
- 新增配置项
🌻 Better
- 升级 Junit -> 5.10.2
- 升级 Solon -> 2.8.3
v4.2.9
v4.2.8
🐛 Bug Fixes
- 修复在 PgSQL 数据库上,使用字段参数动态生成
having
条件并且该条件字段在select
列表中时,生成的having
条件含有别名的问题(这个语法特性在 MySQL 上支持,PgSQL 上不支持)。
🌻 Better
- 优化
ListFieldConvertor
的字段匹配条件:未指定dbType
的List
字段 - 优化
bean-searcher-solon-plugin
组件支持零配置使用 - 升级 solon -> 2.7.5
- 升级 spring-boot -> 2.7.18
- 升级 slf4j-api -> 2.0.13
- 兼容 JDK 8