java – Spring – QueryDsl支持的高级比较器
在official documentation之后,将@EnableSpringDataWebSupport注释添加到我的Spring配置允许在查询中自动注入Predicate类:
然后我可以在执行GET请求时轻松搜索:
这很好用.但是我想知道如何实现更高级的搜索条件: >> 我尝试添加> (>)在我的查询参数中,但它无法解析(例如,对于数字字段,如年龄,它抱怨它不能解析> 10作为数字. 是否可以在查询中直接使用此运算符? (如果重要的话我正在使用Spring Data Mongodb) 最佳答案
自定义查询DSL绑定 – 大于比较
您可以做的是通过扩展QueryDslPredicateExecutor和QuerydslBinderCustomizer在您的存储库中定义您自己的QueryDSL Binding:
我不是查询DSL专家,但我的理解如下:
与java 8 lambda相同的绑定:(path,ageValue) – > path.gt(ageValue).您必须从url参数的角度阅读customize方法中的代码:
自定义查询DSL绑定 – 比较之间 另一种选择是为参数提供下限和上限,如下所示:?age = 10& age = 30.然后,定义以下绑定:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |