2017-05-16 2 views
0

Ich versuche, ein Spring JPA Repository auf Postgresql als Restful Service/Apis zu offenbaren. Ich benutze Spring Boot Start Kit.Spring JPA-Repository als erholsamer Service

Ich folge diesem Beispiel https://spring.io/guides/gs/accessing-data-rest/

Dieses H2 als eingebettete Datenbank verwendet. Ich kann dieses Beispiel ausführen und die restlichen Aufrufe verwenden.

Jetzt möchte ich das gleiche Beispiel von H2 nach Postgresql migrieren. Dazu habe ich die H2-Abhängigkeit entfernt und die postgresql-Abhängigkeit in der pom.xml hinzugefügt.

Außerdem wurden unten die Eigenschaften in application.properties hinzugefügt, um die postgreql-Instanz zu konfigurieren.

spring.datasource.url=jdbc:postgresql:employee 
spring.datasource.driver-class-name=org.postgresql.Driver 
spring.datasource.username=postgres 
spring.datasource.password=admin 
spring.data.jpa.repositories.enabled=true 
spring.jpa.show-sql=true 
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect 
spring.jpa.database=postgresql 
spring.jpa.hibernate.ddl-auto=validate 

logging.level.org.springframework.web=DEBUG 
logging.level.org.hibernate=ERROR 

Unten ist mein pom.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>org.saurav.cf.casestudy</groupId> 
    <artifactId>employeerest</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <name>employeerest</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.3.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> 
     <start-class>org.saurav.cf.casestudy.employee.EmployeerestApplication</start-class> 
    </properties> 



    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-rest</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-hateoas</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <scope>runtime</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
       <dependency> 
    <groupId>javax.persistence</groupId> 
    <artifactId>persistence-api</artifactId> 
    <version>1.0.2</version> 
</dependency> 

<dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.14</version> 
     </dependency> 


    </dependencies> 

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


</project> 

Ich habe bereits eine DB namens Mitarbeiter in meinem laufenden postgresql-Instanz erstellt und modifiziert, um die Einheiten und mvc annonations entsprechend ruhen.

Jetzt, wenn ich versuche, die Apis auszuführen. Es wird ausgeführt und scheint jedoch in der H2-Datenbank und nicht in der laufenden postgreql-Instanz ausgeführt zu werden.

Wie deaktivieren Sie die H2-Datenbank und haben die Postgresql kommen?

Mit besten Grüßen, Saurav

+1

Was Ihr Code für die Datenquellenkonfiguration ist? Möglicherweise gibt es eine fest codierte Zeichenfolge oder lädt die Eigenschaften aus einer anderen Datei. – aUserHimself

+0

können Sie Ihre Pom-Datei teilen? –

+1

Haben Sie die Eigenschaften von H2 aus der Datei application.properties entfernt? –

Antwort

Verwandte Themen