在Spring Boot中实现高级搜索参数

时间:2019-06-08 20:25:51

标签: rest spring-boot

我想在Spring Boot应用程序中实现高级搜索功能。

由于我想遵循良好的做法,因此我对该主题进行了一些研究,但最终没有任何具体的示例或解决方案。

我已经读过使用Predicate的方法,但是找不到任何合适的解释。

因此,我希望过滤器是可选的,并且还包含要查询的值的数组(例如,我的实体User内有Subject个实体的列表,因此我想发送一个Subject ids的数组)

我想到的一件事情是发送一个特殊的 DTO ,其中包括所有可能的过滤器,并且,如果使用其余的if语句可以完成其余工作。 (检查过滤器是否不为空,然后查询等等)。

据我所知,这种方法不太灵活,也不属于最佳做法类别。

另一个在URL中发送一堆参数的选项也不是很感激。是吗?

如何实现DAO层不是问题,目前,我只对将过滤器发送到REST Controllers时的选项感兴趣。发送请求的客户端写有ReactJS

谢谢您的时间。

1 个答案:

答案 0 :(得分:0)

如果您尝试在Rest api上实现它,最好不要使用Dto来获取项目列表,按过滤器获取列表的最佳方法是在端点上使用不同的请求参数,并检查它们是否重新为null或在您的应用程序中包含值