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
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
können Sie Ihre Pom-Datei teilen? –
Haben Sie die Eigenschaften von H2 aus der Datei application.properties entfernt? –