@Document在Spring Boot应用程序中未创建集合

如何解决@Document在Spring Boot应用程序中未创建集合

我有一个简单的spring boot rest应用程序。尝试在Spring Data Mongo db中使用@Document批注创建集合。我知道,如果文档使用@Document注释表示,则spring框架会创建一个集合。

实体

@Document("User")
public class User {
    @Id
    private String Id;
    @Field("firstName")
    @TextIndexed
    private String firstName;
    @Field("lastName")
    @TextIndexed
    private String lastName;
    private String address;

    public String getId() {
        return Id;
    }

    public void setId(String id) {
        Id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

属性

spring.data.mongodb.uri=mongodb://localhost:27017/Order

但是,在rest控制器中,它会在insert命令上创建一个集合,但仍然不会在insert上创建Text-index。

@RestController
public class Controller {
    private MongoTemplate mongoTemplate;

    public Controller(MongoTemplate mongoTemplate) {
        this.mongoTemplate = mongoTemplate;
    }

    @GetMapping("/get")
    public String Get(){
        mongoTemplate.insert(new User());
        return "HelloWorld";
    }
}

控制台中也没有任何错误

控制台

2020-09-03 12:52:00.657  INFO 865 --- [           main] com.example.demo.DemoApplication         : Starting DemoApplication on macbooks-MacBook-Air.local with PID 865 (/Users/macbook/Projects/Fete/demo/build/classes/java/main started by macbook in /Users/macbook/Projects/Fete/demo)
2020-09-03 12:52:00.662  INFO 865 --- [           main] com.example.demo.DemoApplication         : No active profile set,falling back to default profiles: default
2020-09-03 12:52:02.676  INFO 865 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode.
2020-09-03 12:52:02.712  INFO 865 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 22ms. Found 0 MongoDB repository interfaces.
2020-09-03 12:52:04.106  INFO 865 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-09-03 12:52:04.136  INFO 865 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-09-03 12:52:04.137  INFO 865 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.37]
2020-09-03 12:52:04.269  INFO 865 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-09-03 12:52:04.270  INFO 865 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3500 ms
2020-09-03 12:52:04.558  INFO 865 --- [           main] org.mongodb.driver.cluster               : Cluster created with settings {hosts=[localhost:27017],mode=SINGLE,requiredClusterType=UNKNowN,serverSelectionTimeout='30000 ms'}
2020-09-03 12:52:04.692  INFO 865 --- [localhost:27017] org.mongodb.driver.connection            : Opened connection [connectionId{localValue:1,serverValue:9}] to localhost:27017
2020-09-03 12:52:04.731  INFO 865 --- [localhost:27017] org.mongodb.driver.cluster               : Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017,type=STANDALONE,state=CONNECTED,ok=true,minWireversion=0,maxWireversion=8,maxDocumentSize=16777216,logicalSessionTimeoutMinutes=30,roundtripTimeNanos=8577619}
2020-09-03 12:52:06.165  INFO 865 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-09-03 12:52:06.746  INFO 865 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-09-03 12:52:06.764  INFO 865 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 6.69 seconds (JVM running for 13.238)

代码存储库

https://github.com/anandjaisy/mongoDBSpringBoot

解决方法

我必须隐式设置工作

在application.properties文件中

spring.data.mongodb.auto-index-creation=true

或application.yml文件

spring:
  data:
    mongodb:
      auto-index-creation: true

参考-Please use 'MongoMappingContext#setAutoIndexCreation(boolean)' or override 'MongoConfigurationSupport#autoIndexCreation()' to be explicit

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?