【发布时间】:2018-09-06 18:09:06
【问题描述】:
在使用 Spring Boot 设计新应用程序时。我想有一个休息端点来查找所有具有如下过滤器的实体
获取http://foo.com/entities?firstName=test&lastName=test2
实现如下所示。
@RequestMapping(value = /entities, method = RequestMethod.GET)
public List<Entity> getAll(@RequestParam(value = "firstName", required = false) String firstName, @RequestParam(value = "lastName", required = false) String lastName) {
if (firstName != null && lastName != null) {
return entityRepository.findByFirstNameAndLastName(firstName, lastName);
} else if (firstName != null) {
return entityRepository.findByFirstName(firstName);
} else if (lastName != null) {
return entityRepository.findByLastName(lastName);
} else {
return StreamSupport.stream(entityRepository.findAll().spliterator(), false).collect(Collectors.toList());
}
}
我们可以看到,如果我们必须添加新参数,这会有点失控。减轻这种情况的最简单方法是什么。或者我应该改变设计。我以为这是标准做法?
注意。存储库是一个带有添加方法的 CRUDRepository。
【问题讨论】:
-
你可以试试这个方法stackoverflow.com/a/48596145
-
@Cepr0 谢谢,这正是我想要的
-
如果答案对你有帮助,别忘了点赞。;)
标签: spring-boot spring-data-jpa spring-web