我在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对象中字段的名称。但是,它没有返回正确的值。
1条答案
按热度按时间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