Trim() 函数与 Spring JPA 类似查询方法

Trim() Function with Spring JPA like Query Methods

我正在制作内部使用 JPA 查找带有前缀(例如:信息 前缀)的数据的休息服务。

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

List<Entity> findAllByFieldStartsWithIgnoreCase(String field);

一切正常,但是,数据库中的数据有信息前缀,但也有白色 space,如下例所示:

字段:

Information 1
    Information 2
 Information 3
Information 4 

就像你在上面的例子中看到的那样,信息 1 没有一些白色 space,但是信息 2 和 3 有一个或多个白色 space。

我正在寻找忽略这些 space 的方法,我知道 sql 有 trim function to make it, but in JPA repository with Spring,使用查询方法,不存在:

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

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

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

谢谢你的帮助,问候。

您可以在此处使用 @Query 注释使用 JPQL 查询。例如,以下代码段应为您提供对修剪列的前缀搜索

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

这里是关于如何使用 native/JPQL 查询与 Hibernate

resource