【发布时间】:2017-10-18 12:51:04
【问题描述】:
将 Mongo 的聚合与 Java 8 LocalDateTime 条件一起使用时出现以下错误。
引起:org.bson.codecs.configuration.CodecConfigurationException: 找不到类 java.time.LocalDateTime 的编解码器。
下面这段代码
@SpringBootApplication
public class MongojavatimeApplication implements CommandLineRunner {
@Autowired
private MongoTemplate template;
public static void main(String[] args) {
SpringApplication.run(MongojavatimeApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
Criteria c = Criteria.where("createdDate").gt(LocalDateTime.now().minusDays(30));
template.aggregate(Aggregation.newAggregation(Aggregation.match(c)), "TestJavaTime", TestJavaTime.class);
}
}
您会在这里找到很少的测试,LocalDateTime 可以在 Spring 存储库中正常工作,这是使用 MongoTemplate 的 Criteria API 的经典查询,但在创建聚合查询时会引发此错误。 https://github.com/Farael49/spring-mongo-aggregate-localdatetime
我还做了一个小测试,将 LocalDateTime 替换为 java util Date,以表明它没有引发编解码器错误。
有什么我可以做的,还是 Mongo Driver/Spring 问题?
谢谢
【问题讨论】:
标签: java spring mongodb java-8