一尘不染

如何使用Hibernate创建数据库架构

hibernate

读完Hibernate之后:hbm2ddl.auto=正在生产中更新吗?出现了一些问题。首先,我使用Hibernate的原因是要与数据库供应商无关(无需编写10个版本的“相同”
sql查询,例如tsql vs. sql)。

我的问题是在创建数据库架构(生产环境)时出现的。据我所知,我有两种选择。

  1. hbm2dll =更新
  2. 纯sql(ddl)脚本。

在上面的主题中广泛讨论了第一种选择。第二种选择很糟糕,因为这意味着我回到了第一个问题:“不想创建依赖于数据库供应商的sql语句”。(如果“全部”(最后是Hibernate支持的数据库)正在实现DDL(用于定义和检查数据库结构的SQL子集。)相等,则此语句可能为假)。


阅读 178

收藏
2020-06-20

共1个答案

一尘不染

在开发/登台模式中进行所有更改,并手动(或自动)在生产环境中传输和执行脚本,但不要让hibernate模式运行它们。脚本可能需要进行一些调整,因为hbm2ddl更新无法涵盖所有​​情况。

实际上,我从未让hibernate对任何数据库运行ddl。我使用hbm2ddl生成文本:

org.hibernate.tool.hbm2ddl.SchemaExport --config=hibernate.cfg.xml --text --format --delimiter=;

org.hibernate.tool.hbm2ddl.SchemaUpdate --config=hibernate.cfg.xml --text --format --delimiter=;
2020-06-20