当前位置: 首页 > 知识库问答 >
问题:

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

班玉堂
2023-03-14

我有一个5列的表,我想用“Like”模式找出第1列、第2列和第3列之间的重叠。

修剪(列1)修剪(列2)修剪(列3)喜欢%搜索%

有没有什么捷径可以在不使用本机查询的情况下使用sping-data-jpa来实现这一点?

谢谢

共有2个答案

养俊驰
2023-03-14

在te实体中,使用注释@公式:

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

并在仓库中找到该字段;

findByConcatFieldsContains( String text );
袁子瑜
2023-03-14

如果这里提到的“快捷方式”是指“通过在存储库界面中使用合适的方法名定义查询”,那么答案是否定的。Spring data在其方法命名策略中不支持“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);
 类似资料:
  • 我创建了一个maven项目,并添加了我需要的所有依赖项。我有一些使用spall-data-jpa的存储库,我添加了一些集成测试。 现在,如果我知道它是基于springmvc的,我需要添加spring data rest的ontop。但是我发现的所有例子,我需要添加spring boot来启动应用程序。我还注意到所有新的spring项目都使用spring boot。这意味着我必须学习并在我的项目中使

  • 我刚开始使用Springboot和Accessingdatajpa,我决定看看https://spring.io.我决定看的指南是访问数据jpa。我一直跟踪到最后,然后运行了我的应用程序。出乎意料的是,我收到了一条错误消息。 所以问题似乎很简单。它正在我的用户类中查找属性“名称”。但我实际上并没有在任何地方使用属性“名称”。 我的存储库界面: 我的用户类: 应用类: 我假设你们中的一些人在想,你没

  • 我们正在启动一个新项目,我们正在考虑使用spring hateoas/超媒体。HAL浏览器看起来也很有趣,所以我们想看看。 然而,HAL浏览器似乎与spring data rest捆绑在一起,我们不想使用它(出于不同的原因)。 至少我们不想将所有存储库自动公开为rest资源,但在这样做时,除了使用spring hateoas定义链接外,我们还需要明确定义HAL浏览器的链接。 当不自动公开存储库时,

  • 问题内容: 我如何才能达到与以下代码等效的效果: …但是使用Spring和Spring-Data-JPA批注? 我现有代码的基础是: 但是我不知道如何指定方法中的所有操作都应使用悲观锁集。 有一个Spring Data JPA批注,允许您设置,但是我不知道将其放在方法上是否有效。听起来更像是的注解,因为Javadoc说: org.springframework.data.jpa.repositor

  • Spring batch有自己的数据库模式 我的应用程序有自己的数据库模式。 我希望将这些表分离到不同的数据库中,这样spring批处理表就不在我的应用程序数据库中。 默认情况下,spring boot只支持连接到单个数据库。如何配置它,使所有与spring批处理相关的操作都进入spring批处理数据库,而我自己的所有代码都进入我的应用程序数据库? 我使用的是最新的Spring启动1.2.2。

  • 我有一个LOCATION实体,它包含国家、州和城市。并且我有一个LocationRepository接口定义为: 我想按国家找到所有的州。我可以遵循方法名称标准来查询位置实体的所有内容。如果我想要列表,我需要创建StateRepository接口并在其中查询关于状态的一切吗?如果我可以从LocationRepository中获取它,那么方法是什么样子的?我假设它看起来会像下面这样(当然不起作用)。