使用spring-data-jpa查找使用连接列

时间:2016-12-06 17:24:14

标签: spring-boot spring-data-jpa

我有一个包含5列的表,我想找到使用"在"之前使用"在列1,列2和列3之间使用连接。图案。

修剪(第1列)+修剪(第2列)+修剪(第3列)LIKE%search%

有没有使用spring-data-jpa进行此操作的快捷方式而不使用本机查询?

感谢

2 个答案:

答案 0 :(得分:1)

如果通过"捷径"你的意思是"通过在你的存储库界面中使用拟合方法名来定义查询"如记录here,答案是否定的。 Spring数据不支持字符串方法,例如" trim"用它的方法命名策略。

但是,您可以使用@Query注释(不是本机查询!)为您的存储库方法定义JPAQL查询,如下所示:

@Query("select e from MyEntity e where concat(trim(column1), trim(column2), trim(column3)) like %:searchString%")
List<MyEntity> findBySearchString(@Param("searchString") String searchString);

答案 1 :(得分:0)

在实体中,使用注释@Formula:

@Formula( "CONCAT_WS( ' ', field1, field2 ) " )
private String concatFields;

然后在存储库中按该字段查找;

findByConcatFieldsContains( String text );