我想在Spring Boot应用程序中实现高级搜索功能。
由于我想遵循良好的做法,因此我对该主题进行了一些研究,但最终没有任何具体的示例或解决方案。
我已经读过使用Predicate
的方法,但是找不到任何合适的解释。
因此,我希望过滤器是可选的,并且还包含要查询的值的数组(例如,我的实体User
内有Subject
个实体的列表,因此我想发送一个Subject ids
的数组)
我想到的一件事情是发送一个特殊的 DTO ,其中包括所有可能的过滤器,并且,如果使用其余的if语句可以完成其余工作。 (检查过滤器是否不为空,然后查询等等)。
据我所知,这种方法不太灵活,也不属于最佳做法类别。
另一个在URL中发送一堆参数的选项也不是很感激。是吗?
如何实现DAO层不是问题,目前,我只对将过滤器发送到REST Controllers
时的选项感兴趣。发送请求的客户端写有ReactJS
。
谢谢您的时间。
答案 0 :(得分:0)
如果您尝试在Rest api上实现它,最好不要使用Dto来获取项目列表,按过滤器获取列表的最佳方法是在端点上使用不同的请求参数,并检查它们是否重新为null或在您的应用程序中包含值