持久化单元不是持久化的

Posted

技术标签:

【中文标题】持久化单元不是持久化的【英文标题】:Persistence unit is not persistent 【发布时间】:2010-06-16 16:45:40 【问题描述】:

我需要创建嵌入式数据库的持久性单元,在关闭 EntityManager 后保持持久性。

这是我的 PU:

<persistence-unit name="hello-jpa" transaction-type="RESOURCE_LOCAL">
  <class>hello.jpa.User</class>
  <properties>
    <property name="hibernate.show_sql" value="true"/>
    <property name="hibernate.format_sql" value="true"/>
    <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
    <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
    <property name="hibernate.connection.username" value="sa"/>
    <property name="hibernate.connection.password" value=""/>
    <property name="hibernate.connection.url" value="jdbc:hsqldb:target/hsql.db"/>
    <property name="hibernate.hbm2ddl.auto" value="update"/>
  </properties>
</persistence-unit>

并在关闭应用程序后删除数据。

【问题讨论】:

【参考方案1】:

我对@9​​87654321@ 的理解是“旧” URL jdbc:hsqldb:. 创建或连接到与URL jdbc:hsqldb:mem:. 的新表单相同的数据库(即在内存中)。

因此请尝试使用以下 URL:jdbc:hsqldb:file:target/hsql.db

【讨论】:

我也不工作 :(。在这两种情况下都没有这样的文件 lie target/hsql.db... @etam 你可以尝试使用绝对路径(只是为了检查)吗?我对工作目录有疑问。 我所拥有的只是(相对和绝对):~/etam-svn/code/java/hello-jpa > ls target/ classes hsql.db.log maven-archiver hello-jpa-derby -1.0-SNAPSHOT.jar hsql.db.properties 测试类 @etam 我刚刚做了一个测试,下面的 url jdbc:hsqldb:file:target/testdb 肯定有效:ls target/ classes test-classes testdb.properties xsd surefire-reports testdb.log testdb.script跨度> 它是否在会话之间保留对象?

以上是关于持久化单元不是持久化的的主要内容,如果未能解决你的问题,请参考以下文章

Java中是不是有框架来设置持久层?

UICollectionView 单元格不保留数据 --- 如何使它们的数据持久化?

为啥不同数据源的持久化单元查询同一个数据源?

无法为包含 Spring 持久性单元的类调用“hadoop jar”命令

Wildfly 中有多个持久性单元?

使用Spring时如何注入多个JPA EntityManager(持久化单元)