我有一个PagingAndSortingRepository:
public interface BrowserLinkPagination extends PagingAndSortingRepository<BrowserLink, Long> {
List<BrowserLink> findByUserAndUriLike(User user, String uri, Pageable pageable);
}
现在我要做的是在uri
列中搜索多个字词。 Like
非常接近,但它的顺序取决于单词在字符串中的出现方式
编辑澄清:顺序依赖正是我不想要的。我希望搜索字符串与顺序无关,因此LIKE
不是我想要的。
我想这很常见,有几个搜索词要在字符串中查找,我知道我可以通过提供执行的SQL来实现它,但是如果有一种方法可以用术语来表达,那我就很奇怪了弹簧数据?我是
我使用postgresql进行生产,使用h2进行开发/测试。
答案 0 :(得分:0)
在阅读了有关该主题的更多信息之后,很明显我需要进行某种全文搜索。 我将开始使用postgresql提供的那个。我找到了一个简短的工作示例:http://rachbelaid.com/postgres-full-text-search-is-good-enough/
感谢您的评论。
答案 1 :(得分:0)
在方法名称中使用In
。在你的情况下,它可能看起来像这样:
public interface BrowserLinkPagination extends PagingAndSortingRepository<BrowserLink, Long> {
List<BrowserLink> findByUserAndUriIn(User user, List<String> uri, Pageable pageable);
}
当您使用Spring创建的标准API时,浏览器URI的用法非常简单 - 只需输入地址:
/your_api/browserlink/search/findByUserAndUriIn?user=xxx&uri=uri1,uri2,uri3