Pergunta

Estou usando o DB incorporado JPA e Java no meu aplicativo. Tento escrever alguns dados no banco de dados e, quando tento lê -los, sou capaz de fazê -lo. Mas o aplicativo está fechado e quando eu o abro novamente, nenhum dos dados existe.

Aqui está o meu arquivo 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>

Existe algum problema no meu URL do banco de dados.

JDBC: Derby: Pocketmoney

Foi útil?

Solução

Existe algum problema no meu URL do banco de dados.

Não, está correto e deve criar um banco de dados no diretório de trabalho atual.

Algumas idéias para depurar seu problema:

  • Use um caminho absoluto para controle total jdbc:derby:/path/to/pocketmoney;create=true.
  • Verifique se os dados são escritos (ou seja, se os arquivos são alterados).
  • Ative o log EclisElink para ver o que está acontecendo exatamente usando as seguintes propriedades:

    <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>
    
  • Verifique se você compromete transações adequadamente (você está dizendo que seu código está fazendo as coisas, mas não está mostrando isso, então ainda há uma dúvida).

Referências

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top