Java Spring JPA使用LocalDateTime在mongo中获取范围(包括范围)之间的日期
与这个问题非常相似: 然而,我正试图用MongoDB和Java Spring JPA使用LocalDateTime在mongo中获取范围(包括范围)之间的日期,java,spring,mongodb,spring-data-jpa,Java,Spring,Mongodb,Spring Data Jpa,与这个问题非常相似: 然而,我正试图用MongoDB和java.time.LocalDateTime来实现这一点 我试过: findAllByMetadataStartTimeBetween(开始,结束)(工作,但独占开始/结束) FindAllByMetadataStartTimeCreatorTanequal(开始)(工作,但没有结束) 但是,当我尝试时:findallByMetadataStartTimeCreateThaneQualandMetadataStartTimelessTh
java.time.LocalDateTime
来实现这一点
我试过:
(工作,但独占开始/结束)findAllByMetadataStartTimeBetween(开始,结束)
(工作,但没有结束)FindAllByMetadataStartTimeCreatorTanequal(开始)
findallByMetadataStartTimeCreateThaneQualandMetadataStartTimelessThanequal(开始,结束)
我得到错误:json无法序列化类型:class java.time.LocalDateTime
你知道为什么这个特定的组合会抛出这个错误,而之前的组合不会吗?你必须进行自定义查询:
Query query = new Query(
new Criteria().andOperator(
Criteria.where("metadataStartTime").gte(start),
Criteria.where("metadataStartTime").lte(end)
)
);
return mongoTemplate.find(query, EntityName.class);
请尝试下面的代码。我敢肯定,这是一种包容
@Query("{'dateTime' : { $gte: ?0, $lte: ?1 } }")
List<YourObject> findByDateTimeBetween(Date from, Date to);
@Query(“{'dateTime':{$gte:?0,$lte:?1}”)
列出findByDateTimeBetween(日期从,日期到);
下面的Spring数据方法签名用于独占
public List<YourObject> findByDateBetween(Date from, Date to);
公共列表findByDateBetween(日期从,日期到);
一个简单的hack
是在向between方法传递日期时,从较小的日期中减去1,然后向较大的日期添加1。如果我无法破解此错误,这是一个不错的解决方法。谢谢