首页 > 解决方案 > 无法使用存储库上的保存来持久化 Spring 数据 mongodb

问题描述

我正在使用 Spring Data Mongodb 和 Embeded mongoDB 来持久化数据。

Pom.xml

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>de.flapdoodle.embed</groupId>
        <artifactId>de.flapdoodle.embed.mongo</artifactId>

    </dependency>

应用程序属性

  spring.data.mongodb.port=2019
  spring.data.mongodb.database=testdb
  spring.data.mongodb.host=localhost

主类:

   @SpringBootApplication 
  @EnableAutoConfiguration
  @EnableMongoRepositories(basePackages = { "com.koka.mongotest.repo"})
  public class MongotestApplication {

    public static void main(String[] args) {
    SpringApplication.run(MongotestApplication.class, args);
   }

}

实体或域类:

  @Document
  public class Person 
   {
       @Indexed
       private String personId;
        private String name; 
        //getter and setters
    }

回购:

    @Repository
   public interface PersonRepo extends MongoRepository { //No Custom emthod}

服务层:

   @Service
   public class ServiceImpl {
         @Autowired
         PresonRepo repo;
        public void saveJon(Person p )
       {
         repo.save(p);
      }
   }

但是 Int DB 它被保存为

   {"_id":{"$oid":"60e18f9d7eb50d70b56b543f"},"_class":"com.koka.mongotest.entity.Person"}

但是那个人对象持有没有被保存的信息。请就此提出建议,

标签: javamongodbspring-bootspring-dataspring-data-mongodb

解决方案


推荐阅读