【问题标题】:JPA Repository Query Containing Ignore Case包含忽略案例的 JPA 存储库查询
【发布时间】:2016-07-17 12:17:26
【问题描述】:

我正在使用 Spring JPA 编写一个选择查询。我正在传递参数以与数据库中的条目进行比较。当我尝试将 UPPER() 与包含 (%value%) 组合时,我遇到问题(无法编译)。例如。 %UPPER(值)%

where ... AND (UPPER(l.name1) LIKE %UPPER(:search1)% OR UPPER(l.name2) LIKE %UPPER(:search2)% OR UPPER(l.name3) LIKE %UPPER(:search3)%

search1、search2 和 search3 是从我的服务实现传入的参数。是否有其他方法可以在查询中获取包含忽略大小写的这种逻辑?还是我错过了一些小东西?我尝试查找示例,但找不到与这种情况直接相关的示例。

提前感谢您的帮助!

【问题讨论】:

    标签: sql hibernate jpa spring-data


    【解决方案1】:

    首先,您不应该将 SQL 函数 (UPPER) 包装为 %,而是使用文字值。

    无论如何,使用CONCAT 函数可以解决您的问题:

    ...AND (UPPER(l.name1) LIKE CONCAT('%', CONCAT(UPPER(:search1), '%'))...

    另外,请注意您有一个额外的左括号。您可能需要在 LIKE %UPPER(:search3)% 之后添加一个额外的 )

    灵感来自Parameter in like clause JPQL

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 2021-04-16
      • 1970-01-01
      • 2015-10-13
      相关资源
      最近更新 更多