Question

J'utilise DB intégré JPA et Java dans mon application. J'essaie d'écrire des données à la base de données et lorsque je tente de le lire en arrière, je suis capable de le faire. Mais l'application est fermée et quand je l'ouvre à nouveau aucune des données existe.

Voici mon fichier persistence.xml

    <?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>

Y at-il problème dans mon URL de base de données.

  

jdbc: derby: pocketmoney

Était-ce utile?

La solution

  

Y at-il problème dans mon URL de base de données.

Non, il est correct et devrait créer une base de données dans le répertoire de travail courant.

Quelques idées pour déboguer votre problème:

  • Utilisez un chemin absolu pour jdbc:derby:/path/to/pocketmoney;create=true contrôle total.
  • Vérifiez que les données sont écrits (à savoir que le changement des fichiers).
  • Activer la journalisation EcliseLink pour voir ce qui se passe exactement en utilisant les propriétés suivantes:

    <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>
    
  • vérifiez que vous ne commettez transactions correctement (vous dites que votre code est en train de faire des choses mais vous ne montre pas si il y a encore un doute).

Références

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top