Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring JPA使用LocalDateTime在mongo中获取范围(包括范围)之间的日期_Java_Spring_Mongodb_Spring Data Jpa - Fatal编程技术网

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

Java Spring JPA使用LocalDateTime在mongo中获取范围(包括范围)之间的日期,java,spring,mongodb,spring-data-jpa,Java,Spring,Mongodb,Spring Data Jpa,与这个问题非常相似: 然而,我正试图用MongoDB和java.time.LocalDateTime来实现这一点 我试过: findAllByMetadataStartTimeBetween(开始,结束)(工作,但独占开始/结束) FindAllByMetadataStartTimeCreatorTanequal(开始)(工作,但没有结束) 但是,当我尝试时:findallByMetadataStartTimeCreateThaneQualandMetadataStartTimelessTh

与这个问题非常相似:

然而,我正试图用MongoDB和
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。如果我无法破解此错误,这是一个不错的解决方法。谢谢