【发布时间】:2018-06-02 16:02:16
【问题描述】:
我的实体中有两个日期。即。
Date startDate;
Date endDate;
如何查询,以便给定日期,它将返回指定日期在startDate 和endDate 之间的所有实体?
我已经尝试了以下方法:
findByStartDateAfterAndEndDateBefore(Date givenDate);
Spring-Data-JPA 不喜欢这样并遇到错误。没有具体的错误,repo 就是无法注入到我的班级中。
正确的方法是什么?我知道这可以通过 Hibernate 标准或使用 Native SQL 轻松完成,但尝试在 Spring JPA 中做到这一点。
这是查询本身的问题还是 Spring 使用的日期类型之间的某种不兼容?
尝试了findByStartDateAfterAndEndDateBefore(Date givenDate, Date givenDate),但返回 null。
【问题讨论】:
-
findByStartDate... JPA didnt like this。 JPA 不喜欢它是有原因的; JPA API 与开始 findXXX 的方法没有任何关系。那就是 Spring Data JPA API。完全不同的 API -
@DN1 是的,标记为 Spring JPA api。无论如何感谢您的编辑。
-
您检查的
startDate和endDate字段是否只是日期,还是包含时间数据? -
@Just date 很好。我真的不需要时间。 00:00:00 很好。
-
您使用的是什么版本的 Spring Data JPA?
Date的确切类型是什么?是java.sql.Date还是java.util.Date?
标签: java spring date spring-data-jpa jpql