java - 为什么我的数据没有持久化?

标签 java jpa persistence embedded-database javadb

我在我的应用程序中使用 JPA 和 Java 嵌入式数据库。我尝试将一些数据写入数据库,当我尝试读回它时,我能够做到。但是应用程序已关闭,当我再次打开它时,所有数据都不存在。

这是我的 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:derby:pocketmoney

最佳答案

Is there any problem in my database 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>
    
  • 仔细检查您是否适本地提交了事务(您说您的代码正在做一些事情,但您没有展示它,所以仍有疑问)。

引用资料

关于java - 为什么我的数据没有持久化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3621066/

相关文章:

spring - 在tomcat中通过 hudson 部署时出错

java - JPA 执行查询但未插入数据

java - ejb3-persistence.jar源码

postgresql - PostgreSQL的官方Docker镜像如何以及在何处保留其数据库

java - SonarQube JavaSquid 传感器错误,带有下划线编号

java - session Cookie 中缺少 HttpOnly 属性

java - Hibernate/JPA Parent-Child - Parent equals()/hashCode() 可以使用 DB Id 吗?

java - 计时器时间表-Java

java - 如何在 Xbox 上获取 Java

php - 通过模态框提交表单,无需离开页面/模态