代码拉取完成,页面将自动刷新
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=btSuffixOpParamFilter
:用于简化前端传参,例如 age-gt=25 替代 age=25 & age-op=gtJsonArrayParamFilter
:用于简化前端传参,例如 age=[20,30] 替代 age-0=20 & age-1=30AlwaysTrue
(恒真: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.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
JoinParaSerializer
组件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
JoinParaSerializer
组件JsonFieldConvertor
,兼容 DB 返回的 byte[]
类型的字段(例如 H2 的 JSON
字段)having
条件并且该条件字段在 select
列表中时,生成的 having
条件含有别名的问题(这个语法特性在 MySQL 上支持,PgSQL 上不支持)。ListFieldConvertor
的字段匹配条件:未指定 dbType
的 List
字段bean-searcher-solon-plugin
组件支持零配置使用@SearchBean.fields
时,某些情况下会出现 NullPointerException
的问题JsonFieldConvertor
:使支持复杂 JSON
数组到泛型 List<T>
的字段转换@SearchBean.orderBy
仅为一个拼接参数,且查询时未传任何参数时,仍然生成 order by
子句的问题。
https://gitee.com/troyzhxu/bean-searcher/issues/I8NT9X
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
类型的转换:https://gitee.com/troyzhxu/bean-searcher/pulls/9
EnumParamConvertor
对于枚举字段,可将 String/Emun
类型的参数自动转换为 枚举序号
(默认)或 枚举名
(由 @DbField.type
决定)PreparedStatement.setObject(..)
方法报错时,仍然打印 SQL 日志EnumParamConvertor
EnumParamConvertor
DynamicDialect
与 DynamicDialectSupport
类,用于支持动态方言FieldParam.Value.isEmptyValue()
方法重命名为 FieldParam.Value.isEmpty()
AbstractSearcher
重命名为 BaseSearcher
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
的执行性能SearchBean
校验DefaultDbMapping.BeanField
的访问权限@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
xjsonkit
相关依赖时,会启动报错的问题:https://gitee.com/troyzhxu/bean-searcher/issues/I6F4LS
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 最大执行时长v3.8.1
产生的 BUG:https://github.com/troyzhxu/bean-searcher/issues/62
20000
条Builder.toFieldName
方法标记为过时,新增 FieldFns
工具类asc(boolean sure)
与 desc(boolean sure)
方法putAll(Map<String, ?> params)
方法0
时,不执行列表查询bean-searcher.params.filter.max-para-map-size
配置项,默认 150
bean-searcher.params.group.max-expr-length
配置项,默认 50
bean-searcher.params.pagination.max-allowed-offset
配置项,默认 20000
bean-searcher.params.pagination.default-size
的值不能比 bean-searcher.params.pagination.max-allowed-size
大,且都必须大于 0
@SearchBean
注解:新增 having
属性,用于指定分组条件@DbField
注解:新增 type
属性,允许用户手动指定该属性对应的数据库字段类型ParamResolver
: 新增 Convertor
参数转换器,可对检索参数的值类型转换为数据库字段匹配的类型(更好的兼容 Oracle、PgSQL 等数据库)BoolParamConvertor
、NumberParamConvertor
、DateParamConvertor
、TimeParamConvertor
与 DateTimeParamConvertor
参数转换器NotLike
运算符(nk
):https://github.com/troyzhxu/bean-searcher/issues/50
FieldOp.OpPara
:新增 getFieldSql(String field)
方法,可以自定义运算符内获得其它字段的信息DefaultDbMapping
,当 @SearchBean.tables
的值是单表时,则省略 @DbField
的属性也自动映射参数构建器
:新增 sql(..)
方法,可为用于自定义 SQL 条件:https://github.com/troyzhxu/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
替代)@SearchBean.tables
的值是单表时,则省略注解的字段属性也自动映射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
这样以 ,
分隔的字符串参数SqlServerDialect
方言实现,支持 SqlServer 2012+OrLike
运算符,参见:https://github.com/troyzhxu/bean-searcher/issues/38
SqlExecutor
:新增 SlowListener
接口,可让用户在代码中监听慢 SQLDefaultDbMapping
:新增 underlineCase
属性,可配置自动映射时是否开启 驼峰->下划线
的风格转换Dialect
:新增 hasILike()
方法,当忽略大小写查询时,可利用数据库的 ilike
关键字提升查询性能EnumFieldConvertor
:支持 整型
转换为枚举(按枚举序号转换)EnumFieldConvertor
:新增 failOnError
属性, 可配置在遇到非法值无法转换时是否报错,默认 true
EnumFieldConvertor
:新增 ignoreCase
属性, 可配置字符串值匹配枚举时是否忽略大小写,默认 false
SQL 日志
:普通 SQL 显示执行耗时,慢 SQL 日志级别调整为 WARN
并输出关联的实体类DefaultSqlExecutor
,当执行 count sql 且查询结果为 0
时,则不再执行 list sql参数构建器
的 page(..)
与 limit(..)
方法,它们起始页码也受页码配置约束(破坏性更新)Dialect
:为 toUpperCase(..)
添加默认实现,用户自定义方言时,只有一个 forPaginate(..)
方法必须实现DefaultParamResolver
:默认使用 page
分页参数提取器检索器
的 count 与 sum 检索, 当无记录统计时,返回 0
而非 null
, 并再次优化检索性能FetchType#ALL
重命名为 FetchType#DEFAULT
bean-searcher.sql.slow-sql-threshold
配置键,可配置慢 SQL 阈值(单位毫秒),默认为 500
bean-searcher.sql.default-mapping.underline-case
配置键,可配置自动映射时是否开始 驼峰->下划线 的风格转换,默认为 true
bean-searcher.field-convertor.enum-fail-on-error
配置键,可配置在遇到非法值无法转换时是否报错,默认 true
bean-searcher.field-convertor.enum-ignore-case
配置键,可配置字符串值匹配枚举时是否忽略大小写,默认 false
SqlExecutor.SlowListener
的 Spring Bean 来监听慢 SQLbean-searcher.sql.dialect
为 SqlServer
来使用 Sql Server 方言spring-boot
-> v2.6.8
LocalDate
类型的字段时会报 NoSuchMethodError
的问题: https://github.com/troyzhxu/bean-searcher/issues/43
spring-boot -> 2.6.7
spring-boot -> 2.6.7
@SearchBean
注解内指定 groupBy
属性时,不支持 字段求和 的问题MapUtils.builder(..)
的 page(..)
与 limit(..)
方法不受 max-allowed-size
配置约束的问题BoolNumFieldConvertor
字段转换器:支持 Boolean -> Number
方向的转换SearcherBuilder
新增 addResultFilter(..)
方法bean-searcher.field-convertor.use-bool-num
配置键,可自动配置 BoolNumFieldConvertor
,默认为 true
MapUtils.builder(..)
的 page(..)
与 limit(..)
方法不受 max-allowed-size
配置约束的问题@SearchBean
注解内的 SQL 片段支持 :
的转义处理:\\:
@SearchBean
注解新增 orderBy
属性,可指定默认的排序字段@SearchBean
注解新增 sortType
属性,可指定排序约束类型@SearchBean
注解指定 groupBy
属性时,支持 字段求和 查询ResultFilter
机制,可让用户对检索结果统一做进一步的自定义处理PostgreSqlDialect
方言实现,可用于 PostgreSql 数据库SqlResult
,与 JDBC 解耦,便于使用其它 ORM 重写 SqlExecutor
SqlInterceptor
,它的 intercept(..)
方法新增 FetchType
参数B2MFieldConvertor
,可让 BFieldConvertor
也适用于 MapSearcher
检索器DefaultSqlExecutor
的 addDataSource(..)
方法,该方法在 v3.0.0
被标记为过时DateFormatFieldConvertor
的 addFormat(..)
方法,该方法在 v3.0.1
被标记为过时in/Include
运算符时,输出警告,提示使用 ct/Contain
运算符mv/MultiValue
运算符时,输出警告,提示使用 il/InList
运算符bean-searcher.sql.default-mapping.inherit-type
配置键,可在配置文件中指定默认的实体类继承类型,默认为 ALL
bean-searcher.sql.default-mapping.sort-type
配置键,可在配置文件中指定默认的排序约束类型,默认为 ALLOW_PARAM
Spring Bean
的方式为 BeanSearcher
与 MapSearcher
检索器添加 ResultFilter
过滤器bean-searcher.sql.dialect
支持指定为 PostgreSQL
或 PgSQL
来使用 PostgreSql 方言bean-searcher.field-convertor.use-b2-m
配置键,可在配置文件中指定是否启用 B2MFieldConvertor
, 默认 false
Boolean
类型的字段,当检索时该字段传入的参数值为 空串
时,BoolValueFilter
会将其转换为 true
的问题:https://github.com/troyzhxu/bean-searcher/issues/29
field(FieldFn<T, ?> fieldFn, Collection<?> values)
与 field(String fieldName, Collection<?> values)
方法,支持字段值集合参数GroupResolver
、ExprParser
等组件,实现参数分组与逻辑关系的表达、运算、智能化简与解析的能力DefaultParamResolver
新增 gexprName
、groupSeparator
属性,用于指定组参数名的形式MapBuilder
(参数构建器)新增 group(String group)
方法,用于构建字段参数组MapBuilder
新增 groupExpr(String expr)
方法,用于指定参数组间的逻辑关系TimeFieldConvertor
,支持 java.sql.Time
与 LocalTime
之间的转换@DbField
注解新增 alias
属性,支持手动指定字段别名(不指定则自动生成)bean-searcher.params.group.enable
配置键,可在配置文件中指定是否使用参数组功能,默认为 true
bean-searcher.params.group.expr-name
配置键,可在配置文件中指定组表达式参数名,默认为 gexpr
bean-searcher.params.group.expr-cache-size
配置键,可在配置文件中指定组表达式解析缓存的大小,默认为 50
个bean-searcher.params.group.separator
配置键,可在配置文件中指定参数组分隔符,默认为 .
bean-searcher.field-convertor.use-time
配置项,表示是否自动添加 TimeFieldConvertor
,默认 true
StartWith
运算符不后模糊匹配的问题(该 BUG 在 v3.4.2
中滋生)@SearchBean
注解的 joinCond
属性只有一个拼接参数 且 该参数值为空时,则使其不参与 where
子句DateFieldConvertor
无法将 java.sql.Date
转换为 LocalDate / LocalDateTime
的问题DateFieldConvertor
转换 LocalDate / LocalDateTime
时会产生时区偏差的问题DateFormatFieldConvertor
无法格式化 java.sql.Date / java.sql.Time
的问题DateFieldConvertor
无法将 java.sql.Date
转换为 LocalDate / LocalDateTime
的问题DateFieldConvertor
转换 LocalDate / LocalDateTime
时会产生时区偏差的问题DateFormatFieldConvertor
无法格式化 java.sql.Date / java.sql.Time
的问题DateFieldConvertor
无法将 java.sql.Date
转换为 LocalDate / LocalDateTime
的问题DateFieldConvertor
转换 LocalDate / LocalDateTime
时会产生时区偏差的问题DateFormatFieldConvertor
无法格式化 java.sql.Date / java.sql.Time
的问题BoolFieldConvertor
,使支持 Boolean -> boolean
方向的转换DataSource
, 支持 Grails 项目DateFieldConvertor
无法将 java.sql.Date
转换为 LocalDate / LocalDateTime
的问题DateFieldConvertor
转换 LocalDate / LocalDateTime
时会产生时区偏差的问题DateFormatFieldConvertor
无法格式化 java.sql.Date / java.sql.Time
的问题MapBuilder.orderBy(..)
方法,支持多次调用来指定按多个字段进行排序orderBy
排序参数,可以类似 orderBy=age:asc,time:desc
的形式来指定多个排序字段DefaultSqlResolver
、Dialect
、SqlSnippet
等相关类StringUtils.firstCharToUpperCase(..)
方法DefaultDbMapping
新增 ignoreFields
属性,支持配置全局忽略的属性@SearchBean
新增 ignoreFields
属性,可配置单个实体类应该被忽略的属性(可忽略父类中的属性)bean-searcher.sql.default-mapping.ignore-fields
配置项,可在配置文件中指定全局忽略的属性bean-searcher.params.order-by
配置项,可在配置文件中指定排序参数的参数名BoolFieldConvertor
,使支持 Boolean
-> boolean
方向的转换BoolFieldConvertor
,使支持 Boolean
-> boolean
方向的转换BeanSearcherAutoConfiguration
不再强制依赖 DataSource
bean-searcher-boot-starter
依赖MapBuilder
新增 op(Class<? extends FieldOp> op)
方法DateValueCorrector
, 可配置支持的运算符bean-searcher.sql.use-date-value-corrector
配置项,可配置 是否使用 DateValueCorrector
bean-searcher-boot-starter
依赖Operator
常量,使其可以直接作为 @DbField.onlyOn
的值(兼容以前版本,便于升级)DataSource
自动配置FieldOpPool
膨胀的问题DateValueCorrector
,使其支持 LocalDateTime
类型字段DataSourceAutoConfiguration
,只要提供了 DataSource
就能自动配置FieldOp
接口,用户可用之扩展自己的字段运算符FieldOpPool
类,用户可用之定制一套全新的字段运算符NotIn
/ ni
与 NotBetween
/ nb
运算符MultiValue
/ mv
重命名为 InList
/ il
(原运算符仍可使用)DefaultDbMapping
新增 redundantSuffixes
属性,可配置 在实体类自动映射表名时 统一去除类名中的冗余后缀(比如 VO、DTO 等)Dialect
: 移除 truncateToDateStr
,truncateToDateMinuteStr
与 truncateToDateSecondStr
方法bean-searcher.sql.default-mapping.redundant-suffixes
配置项,可配置多个冗余后缀FieldOp
类型的 Spring Bean 来扩展一个新的字段运算符FieldOpPool
类型的 Spring Bean 来定制一套全新的字符运算符@DbIgnore
注解也自动忽略实体类中的 static
与 transient
属性@DbIgnore
也自动忽略实体类中的静态字段@DbIgnore
也自动忽略实体类中的静态字段FieldConvertor
:移除冗余参数 targetType
EnumFieldConvertor
:用来做枚举字段转换@SearchBean
新增 inheritType
属性,可控制继承规则DefaultDbMapping
新增 defaultInheritType
属性,可配置实体类的默认继承规则ct
(Contain
)运算符,用于取代 in
(Include
)运算符(使用 in
将输出警告)bean-searcher.field-convertor.use-enum
配置项,表示是否自动添加 EnumFieldConvertor
,默认 true
bean-searcher.use-map-searcher
配置项,表示是否自动创建 MapSearcher
检索器,默认 true
bean-searcher.use-bean-searcher
配置项,表示是否自动创建 BeanSearcher
检索器,默认 true
JDBC
调用,兼容 sharding-jdbc
Operator.from(Object)
方法MapBuilder
工具类,增加非空校验DefaultSqlResolver
的方法的权限修饰符,便于子类复用Bean Searcher
BFieldConvertor
与 MFieldConvertor
字段转换器子接口,提高字段转换效能DateFieldConvertor
,支持 Date
与 LocalDateTime
类型之间的转换DateFormatFieldConvertor
,使支持 Temporal
及其子类的对象的格式化DateFormatFieldConvertor
,新增:setZoneId(ZoneId)
方法,可配置时区DefaultSqlExecutor
,新增 setTransactionIsolation(int level)
方法,可配置隔离级别DbMapping
,使其完全接管数据映射的解析工作,并将 DefaultDbMapping
从 DefaultMetaResolver
的内部独立出来DefaultDbMapping
,使支持配置注解缺省时的表名前缀与是否开启大写映射,即支持默认映射大写的表名与列名Bean Searcher Boot Starter
NamedDataSource
类型的 Bean 来添加多个具名数据源spring-boot-starter-jdbc
依赖NumberFieldConvertor
StrNumFieldConvertor
BoolFieldConvertor
DateFieldConvertor
DateFormatFieldConvertor
searchCount
和 searchSum
方法时,获取 SQL 结果会出错的问题prefix
的检索方法被移除)SearchPlugin
与 SpringSearcher
辅助类,因为 v3.0 的 Bean Searcher 的使用比借助辅助类更加容易SearchResult
类,移除没有必要的字段,只保留 totalCount
、dataList
与 summaries
字段Searcher
的子接口:MapSearcher
与 BeanSearcher
与其相关实现,MapSearcher
中的检索方法返回的数据类型为 Map
, BeanSearcher
中的检索方法返回的数据类型为泛型的 Search BeanSearcherBuilder
构建器, 使其更容易构建出一个 MapSearcher
或 BeanSearcher
实例@SearchBean
的 groupBy
属性,支持嵌入参数,嵌入参数未传入时,使用空字符串(以前使用 "null"
字符串)BeanReflector
与 FieldConvertor
接口,使得 SearchBean 对象的反射机制更加解耦,更容易扩展与自定义NumberFieldConvertor
、StrNumFieldConvertor
、BoolFieldConvertor
与 DateFormatFieldConvertor
四个字段转换器实现,用户可以选择使用DbMapping
数据库映射接口,并提供基于下划线风格的映射实现,使得简单应用场景下,用户可以省略 @SearchBean
与 @DbField
注解@SearchBean
新增 dataSource
属性,用于指定该 SearchBean 从哪个数据源检索@SearchBean
新增 autoMapTo
属性,用于指定缺省 @DbField
注解的字段自动映射到那张表@DbIgnore
注解,用于指定 忽略某些字段,即添加该注解的字段不会被映射到数据库@DbField
新增 conditional
与 onlyOn
属性,使得用户可以控制该字段是否可以用作检索条件,以及当可作检索条件时支持哪些字段运算符ParamAware
接口,SearchBean 实现该接口时,可在 afterAssembly(Map<String, Object> paraMap)
方法里拿到原始检索参数SqlInterceptor
接口,实现 SQL 拦截器功能SearcherStarter
类)此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。