有没有办法动态生成 Spring Data Jpa 查询?

我正在使用 Spring Boot、Spring Data 编写一个应用程序。我正在尝试实现基于不同过滤器参数的过滤功能。


使用 Spring Data 查询我们可以定义相当复杂的逻辑,例如:


@Query("SELECT u FROM User u WHERE u.status = 1")

Collection<User> findAllActiveUsers();

但是,如果在我们发出可能相当复杂的实际过滤请求之前,where 子句的数量、顺序、限制、不同参数的数量都是未知的,该怎么办?


现在,过滤器参数以 json 对象的形式发送,我解析并检索它们,结果 sql 查询可能如下所示:


SELECT * FROM table

WHERE field1 != `value1` and (field1 != ` value2 `OR (field1 = `value3` AND filed2 < 3))

AND field2 != 99

是否可以生成具有未定义(直到实际过滤器请求,在运行时)数量的参数、where 子句和其他内容的动态复杂查询?


慕无忌1623718
浏览 97回答 1
1回答

守候你守候我

我使用这个活动项目 RSQL for JPAhttps://github.com/perplexhub/rsql-jpa-specification

qq_花开花谢_0

要以类型安全的方式构建它,您可以使用FluentJPA。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java