2017-11-22 3 views
1

MongodbをSpringBootアプリケーションに埋め込む必要がある。しかし、私がどのようにしたのか 私はアプリを起動するたびにmongo dbを再作成します。つまり、私の文書はデータベースに永続的に保存されません。MongodbをSpringブートに埋め込む。常にデータベースを再作成する。

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:

すべては、私がログに表示さ開始\ Users \ユーザー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> 

コントローラー:

@RequestMapping("/check") 
@ResponseBody 
public List<Domain> check(){ 
    System.out.println("/check"); 
    Domain domain = new Domain(i++, "Check_"+String.valueOf(i), true); 
    dm.save(domain); 
    return dm.findAll(); 
} 

リポジトリ:

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は再作成されます。

関連する問題