代码拉取完成,页面将自动刷新
@SearchBean.fields
时,某些情况下会出现 NullPointerException
的问题JsonFieldConvertor
:使支持复杂 JSON
数组到泛型 List<T>
的字段转换@SearchBean.orderBy
仅为一个拼接参数,且查询时未传任何参数时,仍然生成 order by
子句的问题。bean-searcher.params.convertor.date-target
添加默认值 SQL_DATE
bean-searcher.params.convertor.date-time-target
添加默认值 SQL_TIMESTAMP
bean-searcher.params.convertor.time-target
添加默认值 SQL_TIME
BaseSearcher
,新增 failOnParamError
属性,可配置当参数错误时是否向外抛出异常,默认 false
DateParamConvertor
,支持 java.util.Date
子类的转换,并新增 target
属性,支持配置转换目标类型DateTimeParamConvertor
,支持 java.util.Date
子类的转换,并新增 target
属性,支持配置转换目标类型TimeParamConvertor
,新增 target
属性,支持配置转换目标类型bean-searcher.params.fail-on-error
指定参数错误时,是否抛出异常,默认 false
bean-searcher.params.convertor.date-target
bean-searcher.params.convertor.date-time-target
bean-searcher.params.convertor.time-target
bean-searcher.params.fail-on-error
指定参数错误时,是否抛出异常,默认 false
bean-searcher.params.convertor.date-target
bean-searcher.params.convertor.date-time-target
bean-searcher.params.convertor.time-target
IllegalArqumentException
的问题NumberParamConvertor
与 EnumParamConvertor
冲突问题,NumberParamConvertor
不再处理枚举字段的转换JsonFieldConvertor
,支持将 非 String
类型(例如:PGobject
)的 JSON 值转换为对象DateFieldConvertor
支持 Instant
类型的转换:!9:各种日期格式互相转换,增加支持Instant类型
EnumParamConvertor
对于枚举字段,可将 String/Emun
类型的参数自动转换为 枚举序号
(默认)或 枚举名
(由 @DbField.type
决定)PreparedStatement.setObject(..)
方法报错时,仍然打印 SQL 日志EnumParamConvertor
EnumParamConvertor
DynamicDialect
与 DynamicDialectSupport
类,用于支持动态方言FieldParam.Value.isEmptyValue()
方法重命名为 FieldParam.Value.isEmpty()
AbstractSearcher
重命名为 BaseSearcher
@SearchBean
注解省略了 tables
属性,则优先尝试从父类的注解中继承(TODO)DateTimeParamConvertor
, 使其支持解析 yyyy-MM-dd HH:mm:ss.SSS
、yyyy-MM
与 yyyy
格式的参数slf4j
-> 2.0.7
bean-searcher.sql.dialect-dynamic
, 表示是否启用动态方言,默认 false
DataSourceDialect
注入 Bean 的方式添加数据源与方言的映射关系springboot
-> 3.0.6
bean-searcher.sql.dialect-dynamic
, 表示是否启用动态方言,默认 false
DataSourceDialect
注入 Bean 的方式添加数据源与方言的映射关系solon
-> 2.2.17
DefaultSqlExecutor
的执行性能DefaultSqlExecutor
的执行性能DefaultDbMapping
内存成员的访问权限@DbField.type
为 UNKNOWN
时,也支持使用 ParamConvertor
进行参数值转换ParamResolver.Convertor
-> FieldConvertor.ParamConvertor
,且入参 DbType
类型修改为 FieldMeta
类型@DbField
新增 name
属性,可显式指定字段的参数名@DbField
新增 cluster
属性,可显式指定是否是聚合字段@DbField
新增 mapTo
属性,可显式指定映射到哪张表@SearchBean
新增 fields
属性,用于指定额外的动态条件字段@SearchBean.groupBy
使用拼接参数时,条件字段的生成逻辑groupBy
与 groupExpr
同时使用时 where
与 having
的条件拆分逻辑GroupPairResolver
注入 Bean 的方式自定义bean-searcher-boot-starter
)Thank you to all the contributors who worked on this release:
JsonFieldConvertor
字段转换器,新增 failOnError
字段,可配置遇到某些值 JSON 解析异常时,是否自动捕获(即忽略)bean-searcher.field-convertor.json-fail-on-error
配置项,表示当 JSON 解析错误时,是否抛出异常,默认 true
cn.zhxu.bs.param.Operator
-> cn.zhxu.bs.FieldOps
MapUtils.of(..)
为 static
方法。Bean Searcher
JsonFieldConvertor
字段转换器,配合 @DbField(type = DbType.JSON)
可支持 JSON 字段自动转对象,需要添加 JSON 依赖(以下依赖任选一个即可):
cn.zhxu:xjsonkit-fastjson:1.4.2
cn.zhxu:xjsonkit-fastjson2:1.4.2
cn.zhxu:xjsonkit-gson:1.4.2
cn.zhxu:xjsonkit-jackson:1.4.2
cn.zhxu:xjsonkit-snack3:1.4.2
ListFieldConvertor
字段转换器,可支持将 字符串字段自动转为简单 List 对象。NumberFieldConvertor
,使支持 BigDecimal
与 Integer Long Float Double Short Byte
之间的相互转换DefaultDbMapping
,新增 setAroundChar(String)
方法,支持配置标识符的围绕符,以区分系统保留字(只对自动映射的表与字段起作用)MapUtils
,新增 of(k, v)
, of(k1, v1, k2, v2)
等 4 个 便捷 Map 构造方法slf4j-api
-> 2.0.6
springboot
-> 3.0.2
Bean Searcher Boot Starter
bean-searcher.sql.default-mapping.around-char
配置项,可配置标识符的围绕符(例如 MySQL 的 ` 符)bean-searcher.field-convertor.use-json
配置项,表示是否自动添加 JsonFieldConvertor
,默认 true
bean-searcher.field-convertor.use-list
配置项,表示是否自动添加 ListFieldConvertor
,默认 true
bean-searcher.field-convertor.list-item-separator
配置项,用于配置如何将一个字符串分割成 List
字段bean-searcher.field-convertor.date-formats
配置项,支持用 -
替代 :
(因为在 yml 的 key 中 :
默认会被过滤掉)cn.zhxu
com.ejlchina.searcher
-> cn.zhxu.bs
@SearchBean
注解的 joinCond
属性.
符号@SearchBean
添加 timeout
属性,用于控制慢 SQL 最大执行时长@SearchBean
注解:新增 having
属性,用于指定分组条件@DbField
注解:新增 type
属性,允许用户手动指定该属性对应的数据库字段类型ParamResolver
: 新增 Convertor
参数转换器,可对检索参数的值类型转换为数据库字段匹配的类型(更好的兼容 Oracle、PgSQL 等数据库)BoolParamConvertor
、NumberParamConvertor
、DateParamConvertor
、TimeParamConvertor
与 DateTimeParamConvertor
参数转换器NotLike
运算符(nk
):https://github.com/ejlchina/bean-searcher/issues/50
FieldOp.OpPara
:新增 getFieldSql(String field)
方法,可以自定义运算符内获得其它字段的信息DefaultDbMapping
,当 @SearchBean.tables
的值是单表时,则省略注解的属性也能自动映射参数构建器
:新增 sql(..)
方法,可为用于自定义 SQL 条件:https://github.com/ejlchina/bean-searcher/issues/51
根参数
机制(用 $
表示根组,用户构造的组表达式不可以包含 $
),参数构建器默认使用 根参数FieldConvertor
: 字段转换器的 9 个实现类 从 com.ejlchina.searcher.implement
包迁移到 com.ejlchina.searcher.convertor
包下DialectWrapper
:从 com.ejlchina.searcher.implement
包迁移到 com.ejlchina.searcher.dialect
包下@SearchBean
注解:新增 where
替换原来的 joinCond
属性,并将 joinCond
标记为过时DateValueCorrector
,已被 DateParamConvertor
与 DateTimeParamConvertor
替代NullValueFilter
与 BoolValueFilter
(已被 BoolParamConvertor
替代)ParamResolver.Convertor
的 Spring Bean 扩展参数值转换能力bean-searcher.sql.use-date-value-corrector
配置项spring-boot
-> v2.6.9
参数构建器
:新增 orderBy(FieldFn<T, ?> fieldFn)
、orderBy(String fieldName)
、asc()
与 desc()
方法参数构建器
:使 onlySelect(..)
与 selectExclude(..)
方法支持传入形如 age,name
这样以 ,
分隔的字符串参数