【问题标题】:Restarting a Roo-application flushes its correspondant MySQL-table重新启动 Roo 应用程序会刷新其对应的 MySQL 表
【发布时间】:2011-07-27 15:29:20
【问题描述】:

我有一个 Roo 项目。它的数据被持久化到 MySQL 数据库中(通过 Hibernate)。

当我重新启动 Tomcat 时,Roo 应用程序对应的 MySQL 表会被完全刷新。 已在表中的所有数据都将被删除。

如何保存数据?

【问题讨论】:

  • 你的意思是分离实体,所以对它的更改不会写入数据库?
  • 不,我希望将所有内容都写入数据库。假设我在表中创建了一些对象。然后我向实体添加一个字段。现在所有对象都在数据库中消失了。我想保留它们。
  • 这是因为您将hbm2ddl 属性的持久性设置指定为create 而不是update。请参阅康斯坦丁关于如何修复它的答案。

标签: java mysql hibernate spring-roo


【解决方案1】:

尝试使用 Hibernate 的持久性设置 ({project_root}/src/main/resources/META-INF/persistence.xml)。有一行:

        <!-- value="create" to build a new database on each run; value="update" 
            to modify an existing database; value="create-drop" means the same as "create" 
            but also drops tables when Hibernate closes; value="validate" makes no changes 
            to the database -->
        <property name="hibernate.hbm2ddl.auto" value="update" />

在那里设置validate

【讨论】:

  • 是的,就是这样。我会改变我的问题,因为它是错误的。由于您提到的属性,每次我启动服务器时都会刷新数据库。
猜你喜欢
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 2013-11-02
  • 1970-01-01
相关资源
最近更新 更多