Почему мои данные не сохраняются? - PullRequest
1 голос
/ 01 сентября 2010

Я использую JPA и Java Embedded DB в своем приложении. Я пытаюсь записать некоторые данные в базу данных, и когда я пытаюсь прочитать их обратно, я могу это сделать. Но приложение закрывается, и когда я снова его открываю, никаких данных не существует.

Вот мой файл 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>

Есть ли проблема в URL моей базы данных.

JDBC: котелок: PocketMoney

1 Ответ

3 голосов
/ 02 сентября 2010

Есть ли проблема в моей базе данных URL.

Нет, это правильно и должно создавать базу данных в текущем рабочем каталоге.

Некоторые идеи для отладки вашей проблемы:

  • Использовать абсолютный путь для полного контроля jdbc:derby:/path/to/pocketmoney;create=true.
  • Убедитесь, что данные записываются (т.е. файлы меняются).
  • Активируйте ведение журнала EcliseLink, чтобы точно видеть, что происходит, используя следующие свойства:

    <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>
    
  • Дважды проверьте, что вы совершаете транзакции надлежащим образом (вы говорите, что ваш код делает что-то, но вы не показываете это, поэтому все еще есть сомнения).

Ссылки

...