在spring数据存储库中搜索多个单词

时间:2016-06-28 10:17:58

标签: java spring-boot spring-data-jpa jpql

我有一个PagingAndSortingRepository:

public interface BrowserLinkPagination extends PagingAndSortingRepository<BrowserLink, Long> {
    List<BrowserLink> findByUserAndUriLike(User user, String uri, Pageable pageable);

}

现在我要做的是在uri列中搜索多个字词。 Like非常接近,但它的顺序取决于单词在字符串中的出现方式 编辑澄清:顺序依赖正是我不想要的。我希望搜索字符串与顺序无关,因此LIKE不是我想要的。

我想这很常见,有几个搜索词要在字符串中查找,我知道我可以通过提供执行的SQL来实现它,但是如果有一种方法可以用术语来表达,那我就很奇怪了弹簧数据?我是

我使用postgresql进行生产,使用h2进行开发/测试。

2 个答案:

答案 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