java JPA存储库中的多日期查询

eqqqjvef  于 2022-12-21  发布在  Java
关注(0)|答案(1)|浏览(187)

我在Spring Data JPA中创建查询时遇到了一个问题。我想返回一个由日期1之后和日期2之前的对象组成的列表。
其他问题:如何让JPA返回单个列?例如,如果我想返回Reservation表的一列,而不是Reservation对象的列表。
我希望我的查询相当于:

SELECT * FROM reservation WHERE check_in_date >= '2022-12-18' AND check_out_date <= '2022-12-30';

我认为正确的方法名称应该是:

public List<Reservation> findByCheckInDateAfterAndCheckOutDateBefore(Date checkIn, Date checkOut);

checkInDate/checkOutDate是Reservation对象中字段的名称。但是,它没有返回正确的值。

2vuwiymt

2vuwiymt1#

您需要>=,但方法只有After,缺少or equal
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#appendix.query.method.subject 没有AfterThanEqual,可能GreaterThanEqual可以与日期一起使用
或者可以尝试使用求反public List<Reservation> findByCheckInDateNotBeforeAndCheckOutDateNotAfter(Date checkIn, Date checkOut);
您还可以启用sql日志记录(如https://www.baeldung.com/sql-logging-spring-boot所示)并验证执行的sql

相关问题