【问题标题】:Trim() Function with Spring JPA like Query MethodsTrim() 函数与 Spring JPA 类似的查询方法
【发布时间】:2021-08-02 01:13:24
【问题描述】:

我正在做一个休息服务,它在内部使用 JPA 来查找带有前缀的数据(例如:Information 前缀)。

我使用 Spring 数据的查询方法如下所示:

List<Entity> findAllByFieldStartsWithIgnoreCase(String field);

一切正常,但是,数据库中的数据具有 Information 前缀,但也有空格,如下例所示:

字段:

Information 1
    Information 2
 Information 3
Information 4 

正如您在上面的示例中看到的,信息 1 没有一些空白,但信息 2 和 3 有一个或多个空白。

我正在寻找忽略这些空格的方法,我知道 sql 有 trim function 来制作它,但是在 JPA repository with Spring 中,带有查询方法,不存在:

我想找一个函数来输入这样的查询方法:

List<Entity> findAllByField  Trim   StartsWithIgnoreCase(String field);

为了在StartWith之前执行trim函数。

感谢您的帮助,问候。

【问题讨论】:

  • 您可以使用带有修剪功能的条件查询来删除前导/尾随空格

标签: java spring jpa spring-data-jpa spring-data


【解决方案1】:

您可以使用@Query 注释在此处使用JPQL 查询。例如,下面的 sn-p 应该给你一个修剪列的前缀搜索

@Query("select e from Entity e where trim(e.field) like concat(:field,'%')")
List<Entity> findAllByFieldStartsWithIgnoreCase(@Param("field") String field);

这里有一个resource,介绍如何在 Hibernate 中使用本机/JPQL 查询

【讨论】:

    猜你喜欢
    • 2019-04-01
    • 2021-09-18
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 2021-03-15
    • 2022-01-23
    • 1970-01-01
    • 2016-01-08
    相关资源
    最近更新 更多