【问题标题】:How to use a like in JPQL如何在 JPQL 中使用点赞
【发布时间】:2014-08-28 08:17:11
【问题描述】:

我正在尝试弄清楚如何在 JPA / Spring 4 中使用带有命名查询的like。到目前为止,我有以下...

@NamedQuery(name = "MyClass.listItems",
  query = "SELECT DISTINCT(a.name) FROM MyClass a where a.name like ?1")

问题是我最后需要%,但我不知道如何添加它。我试过like ?1%,但这会产生编译错误。

【问题讨论】:

    标签: spring hibernate jpa


    【解决方案1】:

    好的,所以我发现 something 有效,有点……

    @NamedQuery(name = "MyClass.listItems",
            query = "SELECT DISTINCT(a.name) FROM MyClass a where a.name like CONCAT(?1, '%')")
    

    这里的问题是它只有在之后才有效(在我的情况下这很好)。我认为如果你想但还没有尝试过,你可以链接一个 Concat。

    【讨论】:

    • 这基本上是正确的,实际上不是与 Spring 相关的问题。 JPQL 不支持查询内的类似表达式中的%%es 必须应用于绑定到参数的值。 Spring Data JPA 为其添加了一些额外的功能(有关更多详细信息,请参阅reference documentation)。
    猜你喜欢
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多