如何为以下查询获取Spring DATA JPA方法(如findBy
....):
Select * from USER where '2016-02-15' between VALID_FROM and VALID_TO;
答案 0 :(得分:7)
你应该这样做
SELECT * FROM users u WHERE e.REFERENCE_FIELD BETWEEN startDate AND endDate
你的代码不是很清楚,我不知道2016-02-15是什么,如果是你的字段名称或者是一个值,如果是一个值并且你在两者之间使用,你必须指定一个范围,和要比较的领域。
修改
如果你想使用弹簧数据jpa,那么就这样做
findReferenceFieldBetween(value1,value2);
检查参考。 here
答案 1 :(得分:0)
如果要同时包含两个边界日期,可以在Spring数据jpa中使用以下内容
@Query(value = "{'field' : {$gte : ?0, $lte : ?1}}", fields="{ 'field' : 1}")
List<DTO> findByFieldBetweenQuery(String first, String second);
如果需要所有字段,请删除字段部分。希望对别人有帮助。
答案 2 :(得分:0)
在Spring boot:2.1.6中,您可以像下面这样使用:
List<OrderSummaryEntity> findByCreateTimestampBetween(String fromDate, String toDate);
只是为了确认其内部工作方式,如果将spring.jpa.properties.hibernate.show_sql=true
属性放在applocation.properties文件中,则可能会看到如下查询。在内部,只有BETWEEN查询。
Hibernate: select order0_.order_id as order_id1_8_,
order0_.create_timestamp as create_t2_8_,
order0_.inventory_at_order as inventor3_8_,
order0_.last_updated_by as last_upd4_8_,
order0_.location_id as location5_8_,
...
...
...
from order_summary order0_
where order0_.create_timestamp between ? and ?
答案 3 :(得分:0)
SELECT * FROM users WHERE timeStamp BETWEEN 'fromDate' AND 'toDate';
您还可以使用以下JPA方法获取数据,就像上面的查询一样。
findByTimeStampGreaterThanEqualAndTimeStampLessThanEqual(fromDate,toDate);