2017-08-26 1 views

Antwort

3

Spring Roo 2.0 generiert Spring Boot-Anwendungen, daher müssen Sie die Persistenzeigenschaften mit der Datei application.properties konfigurieren. In Spring-Boot-Anwendungen wird die Datei persistence.xml nicht benötigt.

Standardmäßig konfigurieren die von der Spring Roo-Shell generierten Eigenschaften die Persistenz, um die Daten persistent zu machen und nicht jedes Mal, wenn die Anwendung implementiert wird.

Dies ist ein Beispiel über eine projektierte Persistenz mit Hilfe eines Feder Roo Befehl:

jpa setup --provider HIBERNATE --database POSTGRES --databaseName myDB --userName admin --password admin --hostName localhost

src/main/resources/application.properties

spring.datasource.driver-class-name=org.postgresql.Driver 
spring.datasource.password=admin 
spring.datasource.url=jdbc\:postgresql\://localhost\:5432/myDB 
spring.datasource.username=admin 
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy 

Wenn Sie das so konfiguriert haben, Persistenz in Ihrem Projekt mit einem ähnlichen Befehl wie dem oben genannten, sollten Sie eine wirklich ähnliche Persistenzkonfiguration in Ihrer application.properties Datei haben. Allerdings sagen Sie, dass Ihre Daten nicht beibehalten beeing, so vielleicht haben Sie folgende Probleme haben könnten:

  1. Sie konfigurieren Ihr Projekt eine In-Memory-Datenbank wie HYPERSONIC_IN_MEMORY zu verwenden, so dass, wenn Sie die Anwendung neu starten, die Daten ist entfernt. LÖSUNG: Wechseln Sie in eine nichtflüchtige Datenbank wie Postgresql, Mysql, Oracle usw. und führen Sie den Befehl jpa erneut mit der richtigen Konfiguration aus.
  2. Sie haben das Beispiel script clinic.roo ausführen und danach haben Sie den Code aktualisiert, um Ihre eigene Anwendung zu generieren. Die Beispieldatei clinic.roo konfiguriert eine HYPERSONIC_IN_MEMORY-Datenbank, sodass Sie das gleiche Problem wie unter Punkt 1 beschrieben haben. LÖSUNG: Führen Sie erneut den Befehl jpa aus, um die Persistenz mit einer nichtflüchtigen Datenbank zu konfigurieren.
  3. Sie haben die Eigenschaft spring.jpa.hibernate.ddl-auto in Ihrer application.properties Datei mit create oder create-drop Wert manuell deklariert. LÖSUNG: Ändern Sie den Wert dieser Eigenschaft in validate oder update Wert.

Wie auch immer, ich recommed Sie, dass, wenn Sie mit Frühlings-Boot-Anwendungen arbeiten, um mehr über sie lesen Sie die Frühlings-Boot-offizielle Dokumentation mit:

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/

Auch gut ist, zu überprüfen, alle verfügbaren Eigenschaften, die Sie in Ihrer application.properties Datei konfigurieren können:

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties

Hoffe, dass es er lps,

+0

Ich verstehe, was Sie sagen, aber es nicht ganz jive mit dem, was ich sehe ... zum Beispiel sagten Sie, "Standardmäßig konfiguriert die von der Spring Roo Shell generiert die Persistenz Persistenz der Daten und um es nicht jedes Mal zu erstellen, wenn die Anwendung bereitgestellt wird. " aber das ist nicht das, was ich sehe, dass es erstellt, als wenn Sie "Create" anstelle von "Update in persistence.xml. Mein log.roo zeigt ..." jpa setup --provider HIBERNATE --database HYPERSONIC_PERSISTENT "meine Anwendung. Eigenschaften hat, hat nicht Hibernate.hbm2ddl.auto –

+0

Vielen Dank. Das ist sehr nützlich –

0

Ok, damit ich für die Zeit gefragt und bekam Spezifikationen für das Lernen, wie eine Uhr zu bauen,

Die Antwort ist einfach ...

spring.jpa.hibernate.ddl-auto = Update

Fügen Sie dies zu den application.properties hinzu.

JCG hat einen Hinweis .... obwohl er sagte, dass ich die Einstellung geändert, aber es war nicht da, um zu ändern, und die Standardeinstellung ist "Create" nicht aktualisieren.

Die nützlichsten war seine Verbindung zu

application.properties documentation

Dank.

Verwandte Themen