JPA + Hibernate,避免丢弃表

时间:2014-11-13 15:37:14

标签: hibernate jpa hsqldb

我使用的是JavaSE + JPA + Hibernate + HSQLDB。

我的持久性xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="persistence" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <class>sk.tokra.jpa.model.TestDB</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:C:\Dev\db\hsqldb_db" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="false" />
            <property name="hibernate.hbm2ddl.auto" value="create"/>
        </properties>
</persistence-unit>
</persistence>

我创建表,把对象放在那里,findObject by id返回我的obj [ok],我停止app - 下一步启动应用程序读取,得到我的null对象,当我通过id找到(表是空的)。

我想:

<property name="hibernate.hbm2ddl.auto" value="create"/>

不要放弃我的桌子,

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

this answer中所述,值create将创建架构,销毁以前的数据。如果您想保留数据,请尝试使用update

答案 1 :(得分:2)

&#34;创建&#34;没有DROP您的表,它会创建架构并删除您的数据。