Spring JPA使用LocalDateTime获取mongo中的范围(包括)之间的日期

时间:2018-03-05 23:16:32

标签: java spring mongodb spring-data-jpa

与此问题非常相似:Check date between two other dates spring data jpa

但是,我正在尝试使用MongoDB和java.time.LocalDateTime

我试过了:

  • findAllByMetadataStartTimeBetween(start, end)(有效,但独家开始/结束)
  • findAllByMetadataStartTimeGreaterThanEqual(start)(有效,但没有结束)

但是,当我尝试:findAllByMetadataStartTimeGreaterThanEqualAndMetadataStartTimeLessThanEqual(start,end)

我收到错误:json can't serialize type : class java.time.LocalDateTime

任何想法为什么这个特定的组合会抛出这个错误,而之前的错误却没有?

2 个答案:

答案 0 :(得分:0)

您必须进行自定义查询:

Query query = new Query(
      new Criteria().andOperator(
    Criteria.where("metadataStartTime").gte(start),
    Criteria.where("metadataStartTime").lte(end)
  )
);

return mongoTemplate.find(query, EntityName.class);

答案 1 :(得分:0)

尝试以下代码。我敢肯定,可以做到包容性

@Query("{'dateTime' : { $gte: ?0, $lte: ?1 } }")
List<YourObject> findByDateTimeBetween(Date from, Date to);

以下Spring数据方法签名仅适用于

public List<YourObject> findByDateBetween(Date from, Date to);