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:
- 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.
- 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.
- 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,
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 –
Vielen Dank. Das ist sehr nützlich –