129 Star 1.3K Fork 254

Troy / bean-searcher

2024-01-16 12:41
1393412 ejlchina zhxu 1636251845 Troy

🐛 Bug Fixes

  • 修复:使用 @SearchBean.fields 时,某些情况下会出现 NullPointerException 的问题

🌻 Better

  • 升级 slf4j-api -> 2.0.11
  • 升级 solon -> 2.6.5
最后提交信息为: v4.2.7
2024-01-09 10:53
1393412 ejlchina zhxu 1636251845 Troy

✨ Features

  • 增强 JsonFieldConvertor:使支持复杂 JSON 数组到泛型 List<T> 的字段转换

🌻 Better

  • 升级 solon -> 2.6.4
  • 升级 spring-boot -> 3.2.1
  • 升级 slf4j-api -> 2.0.10
最后提交信息为: v4.2.6
2023-12-13 12:11
1393412 ejlchina zhxu 1636251845 Troy

🐛 Bug Fixes

🌻 Dependency Upgrade

  • spring-boot -> 3.1.6
  • solon -> 2.6.2
  • slf4j -> 2.0.9
  • xjsonkit -> 1.4.3
最后提交信息为: CHANGELOG.md
2023-08-02 18:27
1393412 ejlchina zhxu 1636251845 Troy
  • 为配置项 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
最后提交信息为: v4.2.4
2023-08-02 17:07
1393412 ejlchina zhxu 1636251845 Troy

✨ Features

  • Bean Searcher
    • 增强 BaseSearcher,新增 failOnParamError 属性,可配置当参数错误时是否向外抛出异常,默认 false
    • 增强 DateParamConvertor,支持 java.util.Date 子类的转换,并新增 target 属性,支持配置转换目标类型
    • 增强 DateTimeParamConvertor,支持 java.util.Date 子类的转换,并新增 target 属性,支持配置转换目标类型
    • 增强 TimeParamConvertor,新增 target 属性,支持配置转换目标类型
  • Bean Searcher Boot Starter
    • 新增配置项 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 Solon Plugin
    • 新增配置项 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

🐛 Bug Fixes

🌻 Better

  • 升级 Solon -> v2.4.1
  • 升级 SpringBoot -> v3.1.2
最后提交信息为: v4.2.3
2023-07-18 09:11
1393412 ejlchina zhxu 1636251845 Troy
  • 修复 NumberParamConvertorEnumParamConvertor 冲突问题,NumberParamConvertor 不再处理枚举字段的转换
  • 增强 JsonFieldConvertor,支持将 非 String 类型(例如:PGobject)的 JSON 值转换为对象
最后提交信息为: v4.2.2
2023-07-13 19:05
1393412 ejlchina zhxu 1636251845 Troy

✨ Features

  • Bean Searcher
    • 增强:DateFieldConvertor 支持 Instant 类型的转换:!9:各种日期格式互相转换,增加支持Instant类型
    • 新增:EnumParamConvertor 对于枚举字段,可将 String/Emun 类型的参数自动转换为 枚举序号(默认)或 枚举名(由 @DbField.type 决定)
    • 优化:PreparedStatement.setObject(..) 方法报错时,仍然打印 SQL 日志
  • Bean Searcher Boot Starter
    • 自动配置 EnumParamConvertor
  • Bean Searcher Solon Plugin
    • 自动配置 EnumParamConvertor

🐛 Bug Fixes

  • Bean Searcher
    • 修复使用动态方言时,默认方言不能用的问题
  • Bean Searcher Boot Starter
    • 修复 动态方言 不能自动化配置的问题
  • Bean Searcher Solon Plugin
    • 修复 动态方言 不能自动化配置的问题

🌻 Better

  • 升级 Solon -> v2.3.8
  • 升级 SpringBoot -> v3.1.1
最后提交信息为: v4.2.1
2023-05-08 19:15
1393412 ejlchina zhxu 1636251845 Troy

✨ Features

  • Bean Searcher
    • 新增 DynamicDialectDynamicDialectSupport 类,用于支持动态方言
    • 重构 FieldParam.Value.isEmptyValue() 方法重命名为 FieldParam.Value.isEmpty()
    • 重构 AbstractSearcher 重命名为 BaseSearcher
    • 功能:若子类 @SearchBean 注解省略了 tables 属性,则优先尝试从父类的注解中继承(TODO)
    • 优化 DateTimeParamConvertor, 使其支持解析 yyyy-MM-dd HH:mm:ss.SSSyyyy-MMyyyy 格式的参数
    • 升级 slf4j -> 2.0.7
  • Bean Searcher Boot Starter
    • 新增配置项 bean-searcher.sql.dialect-dynamic, 表示是否启用动态方言,默认 false
    • 当启用动态数据源时,支持以 DataSourceDialect 注入 Bean 的方式添加数据源与方言的映射关系
    • 升级 springboot -> 3.0.6
  • Bean Searcher Solon Plugin
    • 新增配置项 bean-searcher.sql.dialect-dynamic, 表示是否启用动态方言,默认 false
    • 当启用动态数据源时,支持以 DataSourceDialect 注入 Bean 的方式添加数据源与方言的映射关系
    • 升级 solon -> 2.2.17

🐛 Bug Fixes

最后提交信息为: v4.2.0
2023-03-09 14:25
1393412 ejlchina zhxu 1636251845 Troy

🌻 Better

  • 提升 DefaultSqlExecutor 的执行性能
最后提交信息为: CHANGELOG.md
2023-03-09 14:25
1393412 ejlchina zhxu 1636251845 Troy

🌻 Better

  • 提升 DefaultSqlExecutor 的执行性能
最后提交信息为: v4.0.2
2023-03-08 10:04
1393412 ejlchina zhxu 1636251845 Troy
  • 优化 SearchBean 非法校验
  • 优化 DefaultDbMapping 内存成员的访问权限
最后提交信息为: v4.1.1
2023-03-03 20:50
1393412 ejlchina zhxu 1636251845 Troy

✨ Features

  • Bean Searcher
    • 优化:@DbField.typeUNKNOWN 时,也支持使用 ParamConvertor 进行参数值转换
    • 重构:ParamResolver.Convertor -> FieldConvertor.ParamConvertor,且入参 DbType 类型修改为 FieldMeta 类型
    • 功能:注解 @DbField 新增 name 属性,可显式指定字段的参数名
    • 功能:注解 @DbField 新增 cluster 属性,可显式指定是否是聚合字段
    • 功能:注解 @DbField 新增 mapTo 属性,可显式指定映射到哪张表
    • 功能:注解 @SearchBean 新增 fields 属性,用于指定额外的动态条件字段
    • 优化:注解 @SearchBean.groupBy 使用拼接参数时,条件字段的生成逻辑
    • 优化:完善 groupBygroupExpr 同时使用时 wherehaving 的条件拆分逻辑
    • 优化:增强逻辑表达式的自动化简能力
  • Bean Searcher Boot Starter
    • 支持 GroupPairResolver 注入 Bean 的方式自定义
  • Bean Searcher Solon Plugin
    • 首发 Solon 插件(功能同 bean-searcher-boot-starter

👨🏻‍💻 Contributors

Thank you to all the contributors who worked on this release:

最后提交信息为: CHANGELOG.md
2023-02-15 11:38
1393412 ejlchina zhxu 1636251845 Troy

✨ Features

  • Bean Searcher
    • 增强 JsonFieldConvertor 字段转换器,新增 failOnError 字段,可配置遇到某些值 JSON 解析异常时,是否自动捕获(即忽略)
  • Bean Searcher Boot Starter
    • 新增 bean-searcher.field-convertor.json-fail-on-error 配置项,表示当 JSON 解析错误时,是否抛出异常,默认 true

🐛 Bug Fixes

最后提交信息为: pom
2023-01-31 16:54
1393412 ejlchina zhxu 1636251845 Troy

✨ Features

  • 重构 cn.zhxu.bs.param.Operator -> cn.zhxu.bs.FieldOps

🐛 Bug Fixes

  • 修正 MapUtils.of(..)static 方法。
最后提交信息为: v4.0.0
2023-01-29 17:49
1393412 ejlchina zhxu 1636251845 Troy

✨ Features

  • 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
      • 参考:https://gitee.com/troyzhxu/xjsonkit
    • 新增 ListFieldConvertor 字段转换器,可支持将 字符串字段自动转为简单 List 对象。
    • 增强 NumberFieldConvertor,使支持 BigDecimalInteger 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 中 : 默认会被过滤掉)
最后提交信息为: CHANGELOG.md
2022-12-04 12:55
1393412 ejlchina zhxu 1636251845 Troy

✨ Features

  • Bean Searcher
    • 移除 Searcher 接口内的 search()、searchFirst()、searchList() 与 searchAll() 方法
    • 新增方法:search(Class beanClass) -> SearchResult
    • 新增方法:search(Class beanClass, String summaryField) -> SearchResult
    • 新增方法:search(Class beanClass, String[] summaryFields) -> SearchResult
    • 新增方法:search(Class beanClass, FieldFns.FieldFn<T, ?> summaryField) -> SearchResult
    • 新增方法:search(Class beanClass, Map<String, Object> paraMap, String summaryField) -> SearchResult
    • 新增方法:search(Class beanClass, Map<String, Object> paraMap, FieldFns.FieldFn<T, ?> summaryField) -> SearchResult
    • 新增方法:searchFirst(Class beanClass) -> T / Map<String, Object>
    • 新增方法:searchList(Class beanClass) -> List / List<Map<String, Object>>
    • 新增方法:searchAll(Class beanClass) -> List / List<Map<String, Object>>
    • 新增方法:searchCount(Class beanClass) -> Number
    • 新增方法:searchSum(Class beanClass, String field) -> Number
    • 新增方法:searchSum(Class beanClass, String[] fields) -> Number[]
    • 新增方法:searchSum(Class beanClass, FieldFns.FieldFn<T, ?> field) -> Number
    • 新增方法:searchSum(Class beanClass, Map<String, Object> paraMap, FieldFns.FieldFn<T, ?> field) -> Number
最后提交信息为: v4.0.0.alpha2
2022-12-02 13:55
1393412 ejlchina zhxu 1636251845 Troy
  • Bean Searcher
    • Maven 坐标 groupId 变更 -> cn.zhxu
    • 包名变更:com.ejlchina.searcher -> cn.zhxu.bs
    • 移除过时 API: @SearchBean 注解的 joinCond 属性
    • 优化嵌入参数:提高兼容性,支持嵌入参数后紧跟了 . 符号
    • 当字段是数字,但传参不是数字时,直接返回空数据
    • 注解 @SearchBean 添加 timeout 属性,用于控制慢 SQL 最大执行时长
    • 当使用 groupBy 与 逻辑分组时,如果所传参数都在 groupBy 内,也使用 where 形式的条件: #I5V4ON:当使用 groupBy 与 逻辑分组时,如果所传参数都在 groupBy 内,也使用 where 形式的条件
  • Bean Searcher Boot Starter
    • 支持 Spring Boot 3
最后提交信息为: v4.0.0.alpha1
2022-10-08 22:14
1393412 ejlchina zhxu 1636251845 Troy

内容可能含有违规信息

最后提交信息为: mvn
2022-07-04 00:14
1393412 ejlchina zhxu 1636251845 Troy

✨ Features

  • Bean Searcher
    • 增强 @SearchBean 注解:新增 having 属性,用于指定分组条件
    • 增强 @DbField 注解:新增 type 属性,允许用户手动指定该属性对应的数据库字段类型
    • 增强 ParamResolver: 新增 Convertor 参数转换器,可对检索参数的值类型转换为数据库字段匹配的类型(更好的兼容 Oracle、PgSQL 等数据库)
    • 新增 BoolParamConvertorNumberParamConvertorDateParamConvertorTimeParamConvertorDateTimeParamConvertor 参数转换器
    • 新增 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,已被 DateParamConvertorDateTimeParamConvertor 替代
    • 移除 NullValueFilterBoolValueFilter(已被 BoolParamConvertor 替代)
    • 优化 分组动态查询条件生成机制:https://github.com/ejlchina/bean-searcher/issues/56
    • 优化 异常提示信息
  • Bean Searcher Boot Starter
    • 支持 用户配置一个 ParamResolver.Convertor 的 Spring Bean 扩展参数值转换能力
    • 移除 bean-searcher.sql.use-date-value-corrector 配置项
    • 升级 spring-boot -> v2.6.9
最后提交信息为: v3.8.0
2022-06-22 22:20
1393412 ejlchina zhxu 1636251845 Troy

✨ Better

  • Bean Searcher
    • 优化 参数构建器:新增 orderBy(FieldFn<T, ?> fieldFn)orderBy(String fieldName)asc()desc() 方法
    • 优化 参数构建器:使 onlySelect(..)selectExclude(..) 方法支持传入形如 age,name 这样以 , 分隔的字符串参数
  • Bean Searcher Boot Starter
    • 优化:添加自定义参数过滤器时,不覆盖内置的参数过滤器
最后提交信息为: CHANGELOG.md
Java
1
https://gitee.com/troyzhxu/bean-searcher.git
git@gitee.com:troyzhxu/bean-searcher.git
troyzhxu
bean-searcher
bean-searcher

搜索帮助