2017-11-22 3 views
1

스프링 부트 애플리케이션에 Mongodb를 임베드해야합니다. 하지만 내가 어떻게했는지는 입니다. 앱을 시작할 때마다 mongo db가 다시 만들어집니다. 내 문서가 데이터베이스에 영구 저장되지 않습니다.스프링 부트에 Mongodb를 임베드 할 때 항상 데이터베이스를 다시 생성하십시오.

2017-11-22 12:03:49.188 INFO 10464 --- [   main] c.j.s.embedmongo.EmbeddedMongoBuilder : Initializing embedded MongoDB instance 
2017-11-22 12:03:49.215 INFO 10464 --- [   main] d.f.embed.process.store.Downloader  : Extract C:\Users\lev\.embedmongo\win32\mongodb-win32-x86_64-2008plus-3.2.1.zip : starting... 
2017-11-22 12:03:49.483 INFO 10464 --- [   main] d.f.embed.process.store.Downloader  : Extract C:\Users\lev\.embedmongo\win32\mongodb-win32-x86_64-2008plus-3.2.1.zip : extract mongodb-win32-x86_64-2008plus-3.2.1/bin/mongod.exe 
2017-11-22 12:03:49.484 INFO 10464 --- [   main] d.f.embed.process.store.Downloader  : Extract C:\Users\lev\.embedmongo\win32\mongodb-win32-x86_64-2008plus-3.2.1.zip : noting left 
2017-11-22 12:03:49.484 INFO 10464 --- [   main] d.f.embed.process.store.Downloader  : Extract C:\Users\lev\.embedmongo\win32\mongodb-win32-x86_64-2008plus-3.2.1.zip : finished 
2017-11-22 12:03:49.484 INFO 10464 --- [   main] c.j.s.embedmongo.EmbeddedMongoBuilder : Starting embedded MongoDB instance 
2017-11-22 12:03:51.180 INFO 10464 --- [   main] d.f.embed.process.runtime.Executable  : start de.flapdood[email protected]867ba60 
2017-11-22 12:03:51.383 INFO 10464 --- [   main] org.mongodb.driver.cluster    : Cluster created with settings {hosts=[localhost:3707], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500} 
2017-11-22 12:03:51.418 INFO 10464 --- [-localhost:3707] org.mongodb.driver.connection   : Opened connection [connectionId{localValue:1, serverValue:1}] to localhost:3707 
2017-11-22 12:03:51.419 INFO 10464 --- [-localhost:3707] org.mongodb.driver.cluster    : Monitor thread successfully connected to server with description ServerDescription{address=localhost:3707, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[3, 2, 1]}, minWireVersion=0, maxWireVersion=4, maxDocumentSize=16777216, roundTripTimeNanos=432755} 
2017-11-22 12:03:51.509 INFO 10464 --- [   main] org.mongodb.driver.connection   : Opened connection [connectionId{localValue:2, serverValue:2}] to localhost:3707 
2017-11-22 12:03:51.939 WARN 10464 --- [   main] o.s.d.m.c.m.BasicMongoPersistentProperty : Customizing field name for id property not allowed! Custom name will not be considered! 

아마이 부분은 데이터베이스 덮어 쓰기로 연결 : 다운 : 추출 C :

마다 내가 로그에보고 시작 \ 사용자 \ lev.embedmongo \는 Win32 \ MongoDB를-는 Win32

내 폼은 .XML :

저장 문서
<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>guru.springframework</groupId> 
    <artifactId>spring-boot-mongodb</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>spring-boot-mongodb</name> 
    <description>Demo project for Spring Boot and Mongo DB</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.1.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

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

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-thymeleaf</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </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> 

     <dependency> 
      <groupId>cz.jirutka.spring</groupId> 
      <artifactId>embedmongo-spring</artifactId> 
      <version>RELEASE</version> 
     </dependency> 

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

컨트롤러 :

저장소 :

public interface DomainRepository extends MongoRepository<Domain, Long> { 

    Domain findFirstByDomain(String domain); 

    Domain findByDomainAndDisplayAds(String domain, boolean displayAds); 

    //Supports native JSON query string 
    @Query("{domain:'?0'}") 
    Domain findCustomByDomain(String domain); 

    @Query("{domain: { $regex: ?0 } })") 
    List<Domain> findCustomByRegExDomain(String domain); 

} 

appilcation.properties는 :

server.port = 8091 
spring.data.mongodb.repositories.enabled=true 
spring.data.mongodb.database=testme 

어떻게이 isssue를 해결할 수 있습니까?

+0

답변으로이 의견을 추가하십시오, 받아 들일 것입니다. – Lev

답변

1

embedded이므로 응용 프로그램이 시작될 때마다 응용 프로그램이 중지되었을 때 이전에 삭제 된대로 DB가 다시 만들어집니다.

관련 문제