我的任务是使用 Spring Data REST 进行高级搜索。我该如何实施?
我设法做了一个简单的搜索方法,就像这样:
public interface ExampleRepository extends CrudRepository<Example, UUID>{
@RestResource(path="searchByName", rel="searchByName")
Example findByExampleName(@Param("example") String exampleName);
}
如果我必须简单地转到 url,这个例子就完美地工作了:
.../api/examples/search/searchByName?example=myExample
但是,如果要搜索的字段不止一个,我该怎么办?
例如,如果我的 Example 类有 5 个字段,我应该使用什么实现来对所有可能的字段进行高级搜索?
考虑这个:
.../api/examples/search/searchByName?filed1=value1&field2=value2&field4=value4
和这个:
.../api/examples/search/searchByName?filed1=value1&field3=value3
我必须做些什么才能以适当的方式实施此搜索?
谢谢。
原文由 Alessandro C 发布,翻译遵循 CC BY-SA 4.0 许可协议
Spring Data Rest 将 QueryDSL 与 Web 支持集成在一起,您可以将其用于高级搜索需求。您需要更改您的存储库以实施
QueryDslPredicateExecutor
一切都会开箱即用。以下是有关该功能的 博客 文章中的示例: