如何在spring JPA @query中使用ignore case?

mik*_*ang 2 sql jpa ignore-case

我有如下查询:

@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);
Run Code Online (Sandbox Code Playgroud)

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

@Query("SELECT b FROM Brand b WHERE lower(b.name1) LIKE lower(%:name1%) or lower(b.name2) like lower(%:name2%)")
Run Code Online (Sandbox Code Playgroud)

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

sla*_*dan 6

问题可能是你的JP-Query的语法.试着用这个:

lower(b.name1) LIKE concat('%', lower(:name1), '%')
Run Code Online (Sandbox Code Playgroud)

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