2016-05-26 7 views
1

Ich arbeite gerade an einem Java EE Projekt und arbeite mit dem Wildfly Server. Ich habe ein Webprojekt und ein EJB-Projekt, die auf dem Wildfly-Server bereitgestellt werden. Ich kann einen Benutzer zum Beispiel speichern, aber nur so lange wie der Server läuft. Zwischen den Ausfallzeiten des Servers besteht keine Datenpersistenz. Ich habe über das Internet gesucht, konnte aber keine Antwort finden.Wildfly Daten Persistenz

sieht mein persistence.xml wie folgt aus:

<persistence-unit name="primary"> 
    <!-- If you are running in a production environment, add a managed 
    data source, this example data source is just for development and testing! --> 
    <!-- The datasource is deployed as WEB-INF/kitchensink-quickstart-ds.xml, you 
    can find it in the source at src/main/webapp/WEB-INF/kitchensink-quickstart-ds.xml --> 
    <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source> 
    <properties> 
    <!-- Properties for Hibernate --> 
    <property name="hibernate.hbm2ddl.auto" value="create-drop" /> 
    <property name="hibernate.show_sql" value="false" /> 
    <value="true"/> 
    </properties> 

Wenn ich keine Informationen anhalten wollen, brauche ich diese Datei neu zu konfigurieren?

Ich hoffe, dass Sie mir helfen können :)

Antwort

4

Ihr Problem ist, diese Linie

<property name="hibernate.hbm2ddl.auto" value="create-drop" /> 

Jedesmal, wenn der Wildfly startet, JPA ein neues Datenbankmodell mit einer leeren Datenbank erstellt.

Passen Sie Ihren Code

<property name="hibernate.hbm2ddl.auto" value="update" /> 
+0

Vielen Dank für Ihre Antwort :) Aber es scheint nicht zu funktionieren:/Ich erstellte eine neue EJB und dann die JPA und konfiguriert die Persistence.xml genau so. – user3074008

2

Du "ExampleDS" können Sie die standardmäßig auf, als H2 In-Memory-Datenbank festgelegt ist. Daher werden Daten zwischen Neustarts nicht absichtlich gespeichert (nützlich für Entwicklung/Test). Gehen Sie zu der Konfigurationsdatei standal/configuration/standalone.xml von wildfly und suchen Sie im Abschnitt "datasources" nach "ExampleDS". Es sollte zeigen:

<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url> 

wo "Mem" In-Speicher bedeutet. Sie können "mem: test" in einen beliebigen Schreibpfad ändern, z.

Verwenden Sie eine H2-Datei-basierte Datenbank als "Test" in Ihrem Home-Ordner gespeichert (unter der Annahme * nix).

Sie können auch zusätzliche Datenbanken (Postgresql, Oracle, usw.) im datasources-section definieren.

+0

Danke :) Ich wusste das nicht. Am Ende habe ich Postgresql installiert und alles funktioniert jetzt gut;) – user3074008