我使用的是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"/>
不要放弃我的桌子,
有什么想法吗?
答案 0 :(得分:6)
如this answer中所述,值create
将创建架构,销毁以前的数据。如果您想保留数据,请尝试使用update
。
答案 1 :(得分:2)
&#34;创建&#34;没有DROP您的表,它会创建架构并删除您的数据。