无法在PostgreSQL上比较文本(不区分大小写在Spring Data JPA上不起作用)

7tofc5zh  于 2022-12-10  发布在  Spring
关注(0)|答案(1)|浏览(99)

在我的Sping Boot 应用程序中,我在PostgreSQL上使用如下所示的@Query,并比较名称值不区分大小写:

@Query(value = "SELECT DISTINCT e.id, e.name FROM Employee e " +
        "WHERE e.name ILIKE :name) ",
        nativeQuery = true)
List<Recipe> getEmployees(@Param("name") String name);

虽然在一段时间内看起来是可以的,但它不能随机返回相同的结果,并且在重建应用程序并重新启动后继续。但在DBeaver上执行相同的查询时,它是工作的。
那么,我应该如何在PostgreSQL中比较名称字段的相等性不区分大小写

jjhzyzn0

jjhzyzn01#

您的查询似乎是错误的。使用了两个参数:name。它应该是

@Query(value = "SELECT DISTINCT e.id, e.name FROM Employee e " +
    "WHERE name ILIKE :name) ",
    nativeQuery = true)
List<Recipe> getEmployees(@Param("name") String name);

实现不区分大小写搜索的另一种方法是使用接口方法:

List<Recipe> findByNameIgnoreCase(String name);

相关问题