Spring boot 如何在使用spring数据jpa时包含边界值

Spring boot 如何在使用spring数据jpa时包含边界值,spring-boot,Spring Boot,我正在编写一个应用程序,其中包含一个名为addedate的属性为Date的实体。 我已经编写了一个扩展MongoRepository的接口,并定义了一个名为 findbyaddeddateween(日期开始日期、日期结束日期) 但是,当我使用2个日期进行查询时,输出仅包含日期之间的列表实体,不包括其addedates为查询日期的实体。我还想包括边界值 ,如果使用2个参数,则在Mongo DB中不包含between关键字 或者,您可以使用spring Range类。必须使用此方法才能包含边界 fi

我正在编写一个应用程序,其中包含一个名为addedate的属性为Date的实体。 我已经编写了一个扩展MongoRepository的接口,并定义了一个名为
findbyaddeddateween(日期开始日期、日期结束日期)
但是,当我使用2个日期进行查询时,输出仅包含日期之间的列表实体,不包括其addedates为查询日期的实体。我还想包括边界值

,如果使用2个参数,则在Mongo DB中不包含between关键字

或者,您可以使用spring Range类。必须使用此方法才能包含边界

findByAddedDateBetween(Range<Date> range)
findbyaddeddateween(范围)
其中范围声明如下:

Range<Date> range = Range.of(Range.Bound.inclusive(dateStart), Range.Bound.inclusive(dateEnd));
Range-Range=Range.of(Range.Bound.inclusive(dateStart),Range.Bound.inclusive(dateEnd));
,如果使用2个参数,则在Mongo DB中不包含between关键字

或者,您可以使用spring Range类。必须使用此方法才能包含边界

findByAddedDateBetween(Range<Date> range)
findbyaddeddateween(范围)
其中范围声明如下:

Range<Date> range = Range.of(Range.Bound.inclusive(dateStart), Range.Bound.inclusive(dateEnd));
Range-Range=Range.of(Range.Bound.inclusive(dateStart),Range.Bound.inclusive(dateEnd));

我使用的是:
@DateTimeFormat(iso=DateTimeFormat.iso.DATE)private DATE addedDate
在数据库中,当我保存一个日期时,它被存储为
“addedDate”:ISODate(“2019-10-10T00:00:00Z”)
在mongodb中,我认为between关键字的解释是
$gt addedDate和$lt addedDate
,在sql中,我认为between是
$gte addedDate和$lte addedDate
我对MongoDB不太了解,但在Potsgres for intance中,between关键字被解释为
,其中addedDate在startDate和endDate之间
。或者,您也可以使用JPA关键字GreaterThanEqual和LessThanEqual,它们相当于gte和lte。当我执行上述方法时,我得到:
org.springframework.data.mongodb.InvalidMongoDbApiUsageException:由于com.mongodb.BasicDocument的限制,无法添加第二个指定为“addedDate:Document{{{$lte=Wed Nov 20 05:30:00}”的“addedDate”表达式。标准已经包含“addedDate:Document{{$gte=Wed Sep 11 05:30:00 IST 2019}”。
我更新了我的答案,我认为您需要使用Spring Range类以便在包含模式下使用between关键字私有日期addedDate
在数据库中,当我保存一个日期时,它被存储为
“addedDate”:ISODate(“2019-10-10T00:00:00Z”)
在mongodb中,我认为between关键字的解释是
$gt addedDate和$lt addedDate
,在sql中我认为介于
$gte addedDate和$lte addedDate之间,我对mongodb不太了解,但在用于intance的Potsgres中,between关键字被解释为
,其中startDate和endDate之间的addedate
。或者,您也可以使用JPA关键字GreaterThanEqual和LessThanEqual,它们相当于gte和lte。当我执行上述方法时,我得到:
org.springframework.data.mongodb.InvalidMongoDbApiUsageException:由于com.mongodb.BasicDocument的限制,无法添加第二个指定为“addedDate:Document{{{$lte=Wed Nov 20 05:30:00}”的“addedDate”表达式。条件已包含“addedDate:Document{{$gte=Wed Sep 11 05:30:00 IST 2019}”。
我更新了我的答案,我认为您需要使用Spring Range类,以便在包含模式下使用between关键字。