[英]How to get all rows from table that matches multiple parametres in Spring Data?
我正在使用Java,Spring Boot和PostgreSQL
现在,我正尝试从网站发送带有多个参数的请求表,以在数据库中搜索与这些参数匹配的行。
像那样
http://localhost:8080/search?vtitle=&vcompany=Epam&vcity=Kiev&vlanguage=Java
我已经弄清楚了如何获得这样一个可靠的查询,但是有一个问题。
List<JobSite> allJobs = jobRepository.findByTitleContainingAndCompanyAndCityAndLanguage(searchForm.getVtitle(),
searchForm.getVcompany(),
searchForm.getVcity(),
searchForm.getVlanguage());
allJobs.sort(Comparator.comparing(JobSite::getTime).reversed());
model.addAttribute("jobs", allJobs);
return "index";
如果我不选择参数之一,由于findBy ...方法的工作原理,它将不会查询该行。
如果我将代码更改一点
public String submit(@RequestParam MultiValueMap<String, String> params, Model model) {
我会得到一些自由。 但是即使如此,我仍然找不到“自动生成”查询的方法,例如
SELECT * FROM table WHERE title = 1 AND company = 1 AND city = 1 AND language = 1
SELECT * FROM table WHERE company = 1 AND city = 1 AND language = 1
SELECT * FROM table WHERE city = 1 AND language = 1
SELECT * FROM table WHERE language = 1
SELECT * FROM table WHERE title = 1 AND city = 1 AND language = 1
等等。
如果我自己用Spring编写代码,它将变得一团糟。
从网站进行此类搜索的最佳方法是什么?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.