【问题标题】:spring data jpa findBy...... with multi column but the save search textspring data jpa findBy ......具有多列但保存搜索文本
【发布时间】:2014-03-11 09:09:40
【问题描述】:

我正在使用 spring data jpa,并且有一个查询来搜索整个列中的文本。

例如:

repository.findByNameContainingOrAliasContaining(名称、别名、可分页)

而且name和alias是同一个值,我得写like

字符串名称=文本;字符串别名 = 文本;
repository.findByNameContainingOrAliasContaining(名称,别名, 可分页)

实际上,我有 5 列要匹配,那么我怎样才能停止编写相同的愚蠢代码呢? 并使代码如下:repository.findByNameContainingOrAliasContaining(text, pageable)(现在写这个会导致“.NoSuchElementException”)

【问题讨论】:

    标签: java spring hibernate jpa spring-data-jpa


    【解决方案1】:

    当您遇到隐式查询的限制时,您可以随时切换到显式@Query

    @Query("select f from Foo f where f.name like %?1% or f.alias like %?1% or ...")
    public List<Foo> findByAnyColumnContaining(String text, Pageable pageable);
    

    【讨论】:

    • 嗨,我已经按照你说的尝试过了,但似乎 spring 仍在解析方法名称而不是执行查询注释。我遇到异常,“找不到任何财产”,我该如何解决,非常感谢!
    • 这很奇怪。如果将方法名称更改为完全不同的名称怎么办?
    • 我试过了,例如“fullTextSearch(string text, Pageable pageable)”,然后异常显示:“No property full found”....OMG
    • 您使用哪个版本的 Spring Data JPA?你如何定义你的存储库?
    • 感谢您的回复。我在我的问题正文中添加了一张图片。这是我对repository的定义,版本是“1.3.4.RELEASE”,听说版本“1.3.1”有bug
    猜你喜欢
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 2020-09-26
    • 2018-08-21
    • 2018-05-20
    相关资源
    最近更新 更多