我可以使用以下方式在列中搜索关键字
List<Application> findByProposalContainingIgnoreCase(String keyword);
如何使用关键字列表达到相同的效果?
例如:
List<Application> findByProposalContainingIgnoreCase(List<String> keywords);
UPDATE:
如果无法这样做,以下方法是否有效:
@Autowired
private ApplicationService applicationService;
List<Application> applications = new ArrayList<>();
for (String keyword : keywords) {
applications.addAll(applicationService.findByProposalContainingIgnoreCase(keyword));
}
这是不可能的,因为普通的sql也做不到。使用“喜欢”一词意味着搜索包含所提供的关键字的所有可能性。在您的情况下,您必须将多个 contains 语句串在一起,例如
List<Application> findByProposalContainingIgnoreCaseOrProposalContainingIgnoreCase(String keyword1, String keyword2);
你可能会更好地做in
您的列表的关键字
List<Application> findByProposalIn(Set<String> proposals);
但问题出现了,现在您必须将提案的大写和小写都添加到集合中,因为它可能不区分大小写,并且它将查找不属于单词一部分的精确匹配。它并不理想,但我认为它会适合你想要做的事情。
UPDATE
您通过添加 for 循环来回答就足以满足您的需要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)