Frage

Ich bin mit JPA und Java Embedded DB in meiner Anwendung. Ich versuche, einige Daten in die Datenbank zu schreiben und wenn ich versuche, es wieder zu lesen Ich bin in der Lage, es zu tun. Aber die Anwendung geschlossen ist, und wenn ich es wieder öffnen keiner der Daten vorhanden sind.

Hier ist meine persistence.xml Datei

    <?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="myMoneyPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>mymoney.Money</class>
    <properties>
      <property name="eclipselink.jdbc.password" value="adminadmin"/>
      <property name="eclipselink.jdbc.user" value="admin"/>
      <property name="eclipselink.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
      <property name="eclipselink.jdbc.url" value="jdbc:derby:pocketmoney;create=true"/>
      <property name="eclipselink.ddl-generation" value="create-tables"/>
    </properties>
  </persistence-unit>
</persistence>

Gibt es ein Problem in meiner Datenbank-URL.

  

jdbc: derby: Taschengeld

War es hilfreich?

Lösung

  

Gibt es ein Problem in meiner Datenbank-URL.

Nein, es ist richtig und soll eine Datenbank in dem aktuellen Arbeitsverzeichnis erstellen.

Einige Ideen, um Ihr Problem zu debuggen:

  • Verwenden Sie einen absoluten Pfad für die volle Kontrolle jdbc:derby:/path/to/pocketmoney;create=true.
  • Überprüfen Sie, ob die Daten geschrieben werden (das heißt, dass die Dateien ändern).
  • Aktivieren EcliseLink Protokollierung, um zu sehen, was genau passiert mit den folgenden Eigenschaften verwendet:

    <properties>
      ...
      <property name="eclipselink.debug" value="ALL"/>          
      <property name="eclipselink.logging.level" value="FINEST" />
      <property name="eclipselink.logging.level.sql" value="FINEST" />
      <property name="eclipselink.logging.level.cache" value="FINEST" />
    </properties>
    
  • Überprüfen Sie, dass Sie Transaktionen begehe in geeigneter Weise (Sie sagen, Ihr Code Dinge tut, aber Sie zeigen nicht, dass es so gibt es noch einen Zweifel).

Referenzen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top