我正在使用 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 子句和其他内容的动态复杂查询?
守候你守候我
qq_花开花谢_0
相关分类