Closed Gelilory closed 1 month ago
参数过滤器 SuffixOpParamFilter
是在调用 Bean Searcher 的检索器的 searchXxx(..)
方法里才会执行的。
你遇到这个问题,调用 searchXxx(..)
方法时传入的参数都有哪些呢?
我又检查了代码,发现xxx-il是可以被解析,xxx-bt无法被解析为between区间查询 我使用的search()方法传参如下,start-bt无法被解析为between区间查询,而是被解析成为starttm>=?
你的截图里 searchXxx(..)
方法的入参里传的就是 starttm-bt
,没见到有传 start-bt
呀
我描述错了,是starttm-bt无法解析为between区间查询条件
我描述错了,是starttm-bt无法解析为between区间查询条件
只有 条件属性 才能这么用,在你的 XcRecords
类里有 starttm
这个条件属性吗?截图看一下。
前端传参如下图
开启bean search参数过滤器相关配置
Vo类代码如下
Controller代码如下图,使用@RequestBody接收参数
ServiceImpl代码如下图,将接收到的map直接传入search()方法
最终解析生成的sql,并不是between区间查询条件
参数值给错了,启用了 JsonArrayParamFilter
后,starttm_bt
的值应该传 JSON数组字符串
,而不是 JSON 数组对象
{
starttm_bt: '["2024-08-01", "2024-09-01"]',
}
因为你传了 JSON 数组对象
后,到后端 Controller
的参数里时,已经不再是 JSON
了,而是变成 ArrayList
了
starttm_bt参数改为字符串了,还是无法解析成between区间查询条件
我后来使用自定义sql条件,替代实现时间区间查询
日期格式给错误了,'["2024-08-01", "2024-09-01"]',你写成了 '["2024-8-1", "2024-9-1"]',少了 2 个 0
新版本 v4.3.5
已支持了 ["2024-8-1", "2024-9-1"] 这种日期格式:https://github.com/troyzhxu/bean-searcher/releases/tag/v4.3.5
我同时打开了SuffixOpParamFilter、JsonArrayParamFilter 发现controller比SuffixOpParamFilter过滤器先执行,导致id-il类似的参数无法识别。请问是什么原因