GVKun编程网logo

Java Hibernate:hbm2dl.auto=在生产中更新?(java update更新)

7

这篇文章主要围绕JavaHibernate:hbm2dl.auto=在生产中更新?和javaupdate更新展开,旨在为您提供一份详细的参考资料。我们将全面介绍JavaHibernate:hbm2dl

这篇文章主要围绕Java Hibernate:hbm2dl.auto=在生产中更新?java update更新展开,旨在为您提供一份详细的参考资料。我们将全面介绍Java Hibernate:hbm2dl.auto=在生产中更新?的优缺点,解答java update更新的相关问题,同时也会为您带来hibernate hbm2ddl.auto 问题、Hibernate hbm2ddl.auto配置的可能值是什么,它们做了什么、Hibernate hbm2ddl.auto默认值、Hibernate hbm2ddl.auto,可能的值以及它们的作用的实用方法。

本文目录一览:

Java Hibernate:hbm2dl.auto=在生产中更新?(java update更新)

Java Hibernate:hbm2dl.auto=在生产中更新?(java update更新)

是否可以hbm2ddl.auto=update在生产环境中运行配置有更新数据库架构的Hibernate应用程序?

答案1

小编典典

这是不安全的。

尽管Hibernate团队做出了最大的努力,但您根本不能依靠生产中的自动更新。编写自己的补丁程序,使用DBA对其进行审核,对其进行测试,然后手动进行应用。

从理论上讲,如果hbm2ddl update在开发中起作用,那么它也应在生产中起作用。但实际上,并非总是如此。

即使工作正常,也可能不是最佳选择。DBA之所以得到这么多是有原因的。

hibernate hbm2ddl.auto 问题

hibernate hbm2ddl.auto 问题


<property name="hibernate.show_sql" value="true" /> 

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


validate 加载 hibernate 时,验证创建数据库表结构
create 每次加载 hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
create-drop 加载 hibernate 时创建,退出是删除表结构
update 加载 hibernate 自动更新数据库结构


当使用注释时候:
mysql
    @Column(name="`order`", columnDefinition="int default ''0''")
    columnDefinition 必须写完整,否者不报错也不生成

    order 是关键字,必须用 ` 包起来

Hibernate hbm2ddl.auto配置的可能值是什么,它们做了什么

Hibernate hbm2ddl.auto配置的可能值是什么,它们做了什么

问题:

I really want to know more about the update, export and the values that could be given to hibernate.hbm2ddl.auto 我真的想知道更多关于更新,导出和可以给hibernate.hbm2ddl.auto的值的更多信息
I need to know when to use the update and when not? 我需要知道何时使用更新,何时不知道? And what is the alternative? 还有什么选择?

These are changes that could happen over DB: 这些是可能发生在DB上的变化:

  • new tables 新表
  • new columns in old tables 旧表中的新列
  • columns deleted 列已删除
  • data type of a column changed 列的数据类型已更改
  • a type of a column changed its attributes 列的类型更改了其属性
  • tables dropped 桌子掉了
  • values of a column changed 列的值已更改

In each case what is the best solution? 在每种情况下,最佳解决方案是什么?


解决方案:

参考一: https://stackoom.com/question/1pys/Hibernate-hbm-ddl-auto配置的可能值是什么-它们做了什么
参考二: https://oldbug.net/q/1pys/What-are-the-possible-values-of-the-Hibernate-hbm2ddl-auto-configuration-and-what-do-they-do

Hibernate hbm2ddl.auto默认值

Hibernate hbm2ddl.auto默认值

的默认值是多少

hibernate.hbm2ddl.auto

在hibernatecfg文件映射中

是否可以删除

<property name="hibernate.hbm2ddl.auto">update</property>

从配置文件映射

如果我删除此属性是否会影响我的数据库

???

答案1

小编典典

创建SessionFactory时,自动将架构DDL验证或导出到数据库。使用create-drop时,显式关闭SessionFactory时将删除数据库架构。

validate | update | create | create-drop
  • 验证现有模式
  • 更新-创建后仅更新您的架构
  • 每次创建-创建架构

Hibernate hbm2ddl.auto,可能的值以及它们的作用

Hibernate hbm2ddl.auto,可能的值以及它们的作用

我正在查看Hibernate hbm2ddl.auto配置属性及其可能的值:

  • validate
  • update
  • create
  • create-drop

所有这些值做什么?

在Hibernate参考文档只是简单地谈论有关create-drop,但并没有说明其他任何值:

hibernate.hbm2ddl.auto

SessionFactory创建时,自动将模式DDL验证或导出到数据库。使用时create-drop,当SessionFactory明确关闭时,将删除数据库模式。

例如 validate | update| create|create-drop

我在这些堆栈溢出问题中找到了 非常 有用的解释:

  • Hibernate hbm2ddl.auto可能的值及其作用是什么?
  • 模式未放在hbmddl.auto = create.drop上

但是官方文档中仍然没有任何内容。

答案1

小编典典

您提供的链接已经是官方文档。因此,今天没有比这更正式和更全面的了。

因此,我想您的问题的答案有两个:

  • 要么在Hibernate问题跟踪器中提交增强请求(最好使用提案)
  • 或阅读相应的代码

我知道这不是您梦dream以求的完美答案,但这实际上是您今天拥有的全部。

但是好消息是该项目是开源的,因此您有所有需要改善的地方:-)。

今天的关于Java Hibernate:hbm2dl.auto=在生产中更新?java update更新的分享已经结束,谢谢您的关注,如果想了解更多关于hibernate hbm2ddl.auto 问题、Hibernate hbm2ddl.auto配置的可能值是什么,它们做了什么、Hibernate hbm2ddl.auto默认值、Hibernate hbm2ddl.auto,可能的值以及它们的作用的相关知识,请在本站进行查询。

本文标签: