使用 Criteria API 的动态 JPA 2.0 查询
我在使用 JPA 2.0 的 CriteriaBuilder 构建动态查询时有点卡住了。
我猜想我有一个相当常见的用例:用户提供任意数量的搜索参数 X 进行和/或连接:例如:
select e from Foo where (name = X1 or name = X2 .. or name = Xn )
CriteriaBuilder 的方法或不是动态的:
谓词或(谓词...限制)
想法?样品?
I am a bit stucked constructing a dynamic query using the CriteriaBuilder of JPA 2.0.
I have quite a common use case I guess: User supplies a arbitrary amount of search parameters X to be and / or concatenated: like :
select e from Foo where (name = X1 or name = X2 .. or name = Xn )
The Method or of CriteriaBuilder is not dynamic:
Predicate or(Predicate... restrictions)
Ideas? Samples?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在你的情况下,我宁愿使用
Expression#in(Collection)
以避免必须循环并构建复合Predicate
动态:您可能需要检查 使用 Criteria API 和 Metamodel API 的基本类型安全查询了解更多详细信息。
In your case, I would rather use
Expression#in(Collection)
to avoid having to loop and to build a compoundPredicate
dynamically:You might want to check Basic Type-Safe Queries Using the Criteria API and Metamodel API for more details.