Domanda

Sto usando JPA e Java DB incorporato nella mia applicazione. Provo a scrivere alcuni dati nel database e quando provo a leggere di nuovo io sono in grado di farlo. Ma l'applicazione è chiuso e quando ho aperto di nuovo nessuno dei dati esistono.

Ecco il mio file 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>

C'è qualche problema nel mio URL del database.

  

jdbc: derby: pocketmoney

È stato utile?

Soluzione

  

C'è qualche problema nel mio URL del database.

No, è corretto e dovrebbe creare una banca dati nella cartella di lavoro corrente.

Alcune idee per eseguire il debug del problema:

  • Usa un percorso assoluto per jdbc:derby:/path/to/pocketmoney;create=true pieno controllo.
  • Verificare che i dati vengono scritti (vale a dire che i file cambia).
  • Attiva EcliseLink registrazione per vedere cosa sta succedendo esattamente utilizzando le seguenti proprietà:

    <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>
    
  • Doppio controllo che non impegnano le transazioni in modo appropriato (si sta dicendo il codice sta facendo le cose, ma non si sta mostrando quindi c'è ancora un dubbio).

Bibliografia

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top