Spring Boot获取两个日期之间的字段

Spring Boot获取两个日期之间的字段,spring,mongodb,spring-boot,Spring,Mongodb,Spring Boot,我在Spring Boot中有一个DTO,它引用了MongoDB上的一个集合 @Document(collection = "his") @AllArgsConstructor @Getter @Setter public class His{ @Id private String internalId; private String person; private String type; private Date date; } 我想找到所有日期

我在Spring Boot中有一个DTO,它引用了MongoDB上的一个集合

@Document(collection = "his")
@AllArgsConstructor
@Getter
@Setter
public class His{

    @Id
    private String internalId;
    private String person;
    private String type;
    private Date date;

}
我想找到所有日期在两个日期之间的对象。我已经有了这个(只有两个月的差异):


试试那样的

public interface HisRepository extends MongoRepository<His, String> {

    @Query("{ date: { $gte: ?0, $lte: ?1 } }")
    List<His> findObjects(Date dateFrom, Date dateTo);

    List<His> findAllByDateGreaterThanEqualAndDateLessThanEqual(Date dateFrom, Date dateTo);

}
公共接口HisRepository扩展了MongoRepository{
@查询({date:{$gte:-0,$lte:-1}}”)
列出FindObject(Date-dateFrom,Date-dateTo);
列出FindAllByDate大于EqualAndAlessThanEqual(日期日期从,日期到);
}
请注意您的边界条件:
$gte
$gt
$lte
$lt


我的界面是从Crudepository扩展而来的,我无法更改它。您还可以使用基于方法名称的查询。
@Override
public ResponseEntity<List<His>> getPagosByFechaPago(String dateTo, String dateFrom) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

        Date dateHasta = null, dateDesde = null;
        try {
            dateHasta = formatter.parse(dateTo);
            dateDesde = formatter.parse(dateFrom);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        Period diff = Period.between(LocalDate.parse(dateFrom), LocalDate.parse(dateTo));
        if(diff.getYears() == 0 && diff.getMonths() <= 2 && diff.getMonths() >= -2) {
            Query query = new Query();
            query.addCriteria(Criteria.where("date").gte(dateHasta).lt(dateDesde));
            List<His> response = mongoTemplate.find(query, His.class);
            log.info(response.toString());
            return new ResponseEntity<>(response, HttpStatus.OK);
        } else {
            return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST);
        }
}
public interface HisRepository extends MongoRepository<His, String> {

    @Query("{ date: { $gte: ?0, $lte: ?1 } }")
    List<His> findObjects(Date dateFrom, Date dateTo);

    List<His> findAllByDateGreaterThanEqualAndDateLessThanEqual(Date dateFrom, Date dateTo);

}