【问题标题】:how to use ignore case in spring JPA @query?如何在 Spring JPA @query 中使用忽略大小写?
【发布时间】:2016-02-06 05:29:14
【问题描述】:

我有如下查询:

@Query("SELECT b FROM Brand b WHERE b.name1 LIKE %:name1% or b.name2 like %:name2%")
List<Brand> findSome(@Param("name1") String name1, @Param("name2") String name2);

我想忽略大小写,所以我尝试修改它

@Query("SELECT b FROM Brand b WHERE lower(b.name1) LIKE lower(%:name1%) or lower(b.name2) like lower(%:name2%)")

但这看起来不行,我该怎么办?

【问题讨论】:

  • 我的运行时错误为“2016-02-06 16:58:30.368 ERROR 2136 --- [nio-8080-exec-4] o.h.hql.internal.ast.ErrorCounter:第 1 行: 74:意外令牌:%antlr.NoViableAltException:意外令牌:%“

标签: sql jpa ignore-case


【解决方案1】:

问题可能是您的 JP-Query 的语法。尝试使用这个:

lower(b.name1) LIKE concat('%', lower(:name1), '%')

进一步参考:http://openjpa.apache.org/builds/1.2.3/apache-openjpa/docs/jpa_langref.html#jpa_langref_like

【讨论】:

  • 错误是“org.h2.jdbc.JdbcSQLException:不支持功能:“VARCHAR +”;SQL 语句:”
猜你喜欢
  • 1970-01-01
  • 2016-09-28
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多