Java Trim()函数,具有类似Spring JPA的查询方法

Java Trim()函数,具有类似Spring JPA的查询方法,java,spring,jpa,spring-data-jpa,spring-data,Java,Spring,Jpa,Spring Data Jpa,Spring Data,我正在制作一个rest服务,它在内部使用JPA查找带有前缀的数据(例如:信息前缀) 我使用Spring数据的查询方法如下所示: List<Entity> findAllByFieldStartsWithIgnoreCase(String field); List<Entity> findAllByField Trim StartsWithIgnoreCase(String field); 正如您在上面的示例中所看到的,信息1没有一些空格,但信息2和3有一个或多个

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

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

List<Entity> findAllByFieldStartsWithIgnoreCase(String field);
List<Entity> findAllByField  Trim   StartsWithIgnoreCase(String field);
正如您在上面的示例中所看到的,信息1没有一些空格,但信息2和3有一个或多个空格

我正在寻找忽略这些空格的方法,我知道sql有能力做到这一点,但在中,查询方法并不存在:

我想找到一个函数来键入如下查询方法:

List<Entity> findAllByFieldStartsWithIgnoreCase(String field);
List<Entity> findAllByField  Trim   StartsWithIgnoreCase(String field);
List findAllByField Trim StartsWithIgnoreCase(字符串字段);
以便在开始之前执行微调功能


我感谢您的帮助,尊敬。

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

@Query("select e from Entity e where trim(e.field) like concat(:field,'%')")
List<Entity> findAllByFieldStartsWithIgnoreCase(@Param("field") String field);
@Query(“从实体e中选择e,其中修剪(e.field)如concat(:field,“%”)))
列出findAllByFieldStartsWithIgnoreCase(@Param(“字段”)字符串字段);

下面是一个关于如何在Hibernate中使用本机/JPQL查询的示例

您可以使用criteria query和trim函数删除前导/尾随空格