在 JPA 存储库(Spring Data Jpa)中执行自定义查询

Posted

技术标签:

【中文标题】在 JPA 存储库(Spring Data Jpa)中执行自定义查询【英文标题】:Executing custom query in JPA Repository (Spring Data Jpa) 【发布时间】:2021-04-01 19:54:01 【问题描述】:

使用 Spring Boot 应用程序。 我有一个 UserService 类,在其中我根据请求参数创建具有多个或条件的动态查询:

Select care_adl_id, adl_text,  hr from (select care_adl_id, adl_text, extract(hour from actual_hour)hr from adl_events) as evt where  
care_adl_id = 1 and hr > 6 and hr < 15 
 or care_adl_id = 2 and hr > 6 and hr < 15  
 or care_adl_id = 3 and hr > 15 and hr < 23

我有 UserRepository 接口,我需要执行这个查询。到目前为止,我已经使用了 JPA 函数,如 findById 等或 @Query("Select id from Events")。

如何将此查询从服务类传递到存储库并执行?

【问题讨论】:

【参考方案1】:

您可以使用我的spring-dynamic-jpa 库。您只需要编写一个查询模板,它将帮助您根据参数更改查询。

【讨论】:

以上是关于在 JPA 存储库(Spring Data Jpa)中执行自定义查询的主要内容,如果未能解决你的问题,请参考以下文章

spring-data-jpa 存储库模式与 Querydsl 查询模式有啥区别?

Spring-Data-Jpa 存储库 - 实体列名称上的下划线

spring-data-jpa 存储库在 Query 中使用 Collection 作为 @Param

如何记录 Spring Data JPA 存储库方法执行时间?

延迟加载 Spring Data JPA 存储库

Spring Data:JPA 存储库 findAll() 返回 *Map 而不是 List?