当前位置: 首页 > 面试题库 >

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

尉迟晔
2023-03-14
问题内容

我真的很想了解更多有关更新,导出以及可以提供的值的信息,hibernate.hbm2ddl.auto
我需要知道何时使用更新,何时不使用更新?还有什么选择?

这些是可能在数据库上发生的更改:

  • 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

在每种情况下,最佳解决方案是什么?


问题答案:

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

例如验证| 更新| 创建| 创建放置

因此,可能的选项列表是

  • validate:验证模式,不对数据库进行任何更改。
  • update:更新架构。
  • create:创建模式,销毁先前的数据。
  • create-drop:在显式关闭SessionFactory时(​​通常是在应用程序停止时),删除架构。
  • none:对模式不执行任何操作,不对数据库进行任何更改


 类似资料:
  • 对数据库进行查询和修改操作的语言叫做 SQL(Structured Query Language,结构化查询语言)。SQL 语言是目前广泛使用的关系数据库标准语言,是各种数据库交互方式的基础。 著名的大型商用数据库 Oracle、DB2、Sybase、SQL Server,开源的数据库 PostgreSQL、MySQL,甚至一些小型的数据库 Access 等都支持 SQL。近些年蓬勃发展的 NoS

  • 问题内容: 在Java中,嵌套类是什么,它们做什么? 问题答案: 它们只是其他类中的类。它们使类的层次结构成为可能,如果您将它们设为私有,则这是一种使用它们封装不在类外部公开的数据的便捷方法。Sun有一个简短的教程关于他们

  • 我一直在努力学习什么是EJB bean,这意味着他们的实例在池中被管理,等等。真的不能很好地掌握它们。 你能给我解释一下它们到底是什么吗(实际上对于一个Java程序员来说)?他们是做什么的?他们的目的是什么?为什么要真正使用它们?(为什么不坚持?)也许是一个示例应用程序? 请仅参考更新的信息,即。关于EJB的过时信息可能具有误导性。 对于EJB学习初学者,请注意: EJB基于分布式对象,这是指运行

  • 问题内容: PHP 中的and 运算符是什么? 例如: 问题答案: 这是 条件运算符 。 表示“如果为真,则使用;否则为”。 它也有一个简短的形式。 表示“如果为真,则使用;否则为”。 人们会告诉您这是“三元运算符”。错了 是 一个 三元运算符,这意味着它有三个操作数。人们常常以为它的名字叫“三元运算符”,因为它通常是给定语言唯一的三元运算符。

  • 问题内容: 今天,我浏览了该站点上的一些问题,发现提到了 以单例模式使用的这种解决方案声称具有线程安全性的优点。 我从未使用过,并且使用Java编程已经有两年多了。显然,他们改变了很多。现在,他们甚至在自己内部提供了对OOP的全面支持。 现在为什么要在日常编程中使用枚举?为什么? 问题答案: 当变量(尤其是方法参数)只能从一小部分可能的值中取出一个时,应始终使用枚举。例如类型常量(合同状态:“永久

  • 问题内容: 我对中的功能有些困惑。例如,为什么下面的试验(一致地)执行它们的工作? 我找不到关于此的好的文档。 问题答案: 伪随机数生成器通过对值执行某些运算来工作。通常,此值是生成器生成的先前编号。但是,第一次使用生成器时,没有先前的值。 播种伪随机数生成器会为其提供第一个“上一个”值。每个种子值将对应于给定随机数生成器的一系列生成值。也就是说,如果两次提供相同的种子,则两次获得相同的数字序列。