【问题标题】:I have recently started learning hibernate and I got the following doubts最近开始学习hibernate,遇到以下疑惑
【发布时间】:2019-04-18 20:32:47
【问题描述】:

最近开始学习hibernate,遇到以下疑惑

如果我错了,请纠正我。

  1. 如果 hbm2ddl.auto 设置为 create,则每次 hibernate 尝试与任何表交互时,都会首先删除该表。

  2. 由于 hibernate 每次与其交互时都会删除一个表,如果我想更新一条记录,我无法将 hbm2ddl 值配置为 create。

【问题讨论】:

    标签: java hibernate jdbc frameworks relational-database


    【解决方案1】:

    如果您将 value 配置为 create 您可以更新记录,但是当您的应用程序关闭时,您将重新启动它,所有更改都会消失。 所以实际上在这种情况下最好使用更新。

    如果更新它只更新架构,您可以定义一些架构 sql 文件并在数据库端使用它,只需将 hbm2ddlauto 配置为更新。

    以下是 hbm2.ddlauto 的可能值:

    • validate:验证架构,不更改数据库。

    • 更新:更新架构。

    • create:创建架构,销毁以前的数据。

    • create-drop:在 SessionFactory 关闭时删除模式 显式地,通常在应用程序停止时。

    【讨论】:

      【解决方案2】:

      表不会在每次 hibernate 与其交互时被删除和重新创建——它在 SessionFactory 初始化时被删除和重新创建。这通常意味着您的应用程序何时启动。因此,如果您要在每次应用程序运行时都从干净的数据库开始进行一些测试,将 hbm2ddl.auto 设置为“create”是合理的。

      有关更多信息,请参阅community documentationthis previous question

      【讨论】:

      • 感谢您的快速回复
      猜你喜欢
      • 1970-01-01
      • 2016-01-11
      • 2011-05-12
      • 1970-01-01
      • 2011-07-12
      • 2019-12-16
      • 1970-01-01
      • 2010-09-13
      • 2011-03-23
      相关资源
      最近更新 更多