Spring Boot JPA 存储库查询

Posted

技术标签:

【中文标题】Spring Boot JPA 存储库查询【英文标题】:Spring boot JPA repository query 【发布时间】:2021-04-16 18:58:07 【问题描述】:

我想使用 spring jpa 存储库检索从当前日期起 6 个月内出生的人的数据

+-----------+----------+-------------+-----------------+------------+-------------+
| donorName | donorAge | donorGender | donorBloodgroup | donorPhone | dateOfBirth |
+-----------+----------+-------------+-----------------+------------+-------------+
| abd       |       22 | male        | bpos            |       1212 | 1998-09-01  |
| Arun      |       22 | male        | apos            |      12111 | 1998-10-27  |
| rohit     |       21 | male        | apos            |    1233212 | 1999-09-01  |
| virat     |       32 | male        | apos            |   10001100 | 1999-09-01  |
| Rama      |       21 | male        | o-ve            |   12345678 | 2019-09-08  |
| ramesh    |       34 | male        | b+ve            |  123456712 | 2020-12-10  |
| Aniruddha |       22 | male        | o+ve            |  959121844 | 2020-08-01  |
+-----------+----------+-------------+-----------------+------------+-------------+

这是我的桌子

这是我正在尝试的查询:@Query("from donor where dateOfBirth > date_sub(now(),interval 6 month)") 列出 findBloodDonorsBydateOfBirth(); 我在构建 Spring Boot 应用程序时遇到错误。 此查询在 mysql 中有效 谢谢

【问题讨论】:

【参考方案1】:

两个提示:

    使用这个查询@Query( value = "select * from donor as d where d.dateofBirth > date_sub(now(),interval 6 month)" , nativeQuery = true) List<Donor> findBloodDonorsBydateOfBirth();

    为了给你更好的帮助,请附上控制台出现的错误。

【讨论】:

【参考方案2】:

在您的存储库中尝试以下代码,它会起作用。

@Query("select d from donor d where d.dateOfBirth > date_sub(now(),interval 6 month)") 
List<Donor> findBloodDonorsBydateOfBirth();

【讨论】:

以上是关于Spring Boot JPA 存储库查询的主要内容,如果未能解决你的问题,请参考以下文章

使用 spring boot JPA hibernate 存储库检查用户名和密码的 Mysql 查询不起作用。我该怎么办?

两个不同的查询返回相同的对象 Spring Boot JPA

在 Spring Boot 应用程序的 JUnit 测试中,自动装配的 JPA 存储库没有合格的 bean

spring boot 应用程序:jpa 查询返回旧数据

JPQL 的 Spring Boot JPA“查询验证失败”错误

Spring Boot 中 JPA 存储库的“没有限定类型的 bean”