首页 > 解决方案 > Spring Boot Data Mongo Native TimeSeries 集合

问题描述

我正在查看mongo 的最新 spring 数据文档,它指出:

创建从注释派生的时间序列集合

@TimeSeries(collection="weather", timeField = "timestamp")
public class Measurement {

    String id;
    Instant timestamp;
    // ...
}

template.createCollection(Measurement.class); 

但是,我在任何 spring 注释中都没有看到 @TimeSeries。他们在这里使用什么依赖项?我正在使用 Spring Boot 框架,是否有可能他们更新了 Spring 数据而不是 Spring Boot 数据?

标签: springmongodbspring-boottime-seriesspring-data

解决方案


有效的是使用 Spring Boot 包的最新快照来模仿 springframework 文档上的说明。

  1. 将快照存储库添加到任何引用快照版本的 pom。

     ...
     <repositories>
         <repository>
             <id>spring-snapshots</id>
             <url>https://repo.spring.io/snapshot</url>
             <snapshots><enabled>true</enabled></snapshots>
         </repository>
         <repository>
             <id>spring-milestones</id>
             <url>https://repo.spring.io/milestone</url>
         </repository>
     </repositories>
     <pluginRepositories>
         <pluginRepository>
             <id>spring-snapshots</id>
             <url>https://repo.spring.io/snapshot</url>
         </pluginRepository>
         <pluginRepository>
             <id>spring-milestones</id>
             <url>https://repo.spring.io/milestone</url>
         </pluginRepository>
     </pluginRepositories>
    
  2. 设置spring boot版本,目前:

      <spring.boot.version>2.6.0-SNAPSHOT</spring.boot.version>
    
  3. 设置spring boot starter data mongodb版本,目前:

     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-data-mongodb</artifactId>
         <version>2.5.3</version>
     </dependency>
    

编辑 - 如果您使用 Spring Cloud,您的应用程序将在运行时在 SNAPSHOT 和 Spring Cloud 之间引发兼容性错误,除非您使用以下内容更新您的 yaml 配置文件:

spring:
  cloud:
    compatibility-verifier:
      enabled: false

推荐阅读