【发布时间】:2021-12-09 00:29:39
【问题描述】:
我有一个小问题。我有以下查询,应该按 externalId 或 carName 过滤。该查询也有效,但查询区分大小写。但是过滤器应该忽略大小写。
@Query("SELECT d FROM CarLocationEntityView d WHERE d.externalId LIKE %:carNameAndExternalId% OR d.carName LIKE %:carNameAndExternalId% ")
List<CarLocationEntityView> findByCarNameAndExternalId(String carNameAndExternalId);
我正在使用 JPA 和 Postgres Sql 数据库。
第一次尝试:
@Query("SELECT d FROM CarLocationEntityView d WHERE d.externalId LIKE %:carNameAndExternalId% OR d.carName LIKE '%:carNameAndExternalId% COLLATE latin1_general_cs' ")
List<CarLocationEntityView> findByCarNameAndExternalId(String carNameAndExternalId);
不工作
第二次尝试:
@Query("SELECT d FROM CarLocationEntityView d WHERE d.externalId LIKE %:carNameAndExternalId% OR d.carName LIKE low(%:carNameAndExternalId% )")
List<CarLocationEntityView> findByCarNameAndExternalId(String carNameAndExternalId);
也不行
第三次尝试:
@Query("SELECT d FROM CarLocationEntityView d WHERE d.externalId LIKE %:carNameAndExternalId% OR d.carName ILIKE %:carNameAndExternalId% ")
List<CarLocationEntityView> findByCarNameAndExternalId(String carNameAndExternalId);
也不行
【问题讨论】:
标签: postgresql jpa