1

首先,我应该说我是 Hibernate 技术的初学者。(嗯,实际上,我已经在几个项目中使用过它)。但我想知道你对此的看法。我使用 Hibernate 注释以这种方式创建我的数据库的所有表:

  • 使用“hibernate.hbm2ddl.auto=create-drop”,(一遍又一遍)直到我最终得到我需要的数据库模型。

  • 然后我尝试从 Hibernate 生成的数据库模型中获取 SQL 脚本(例如,使用 Workbench)。

  • 我删除了我的数据库,然后再次创建它,但现在使用的是 SQL 脚本。

  • 之后,在我的项目中,我将属性“hibernate.hbm2ddl.auto=create-drop”更改为“hibernate.hbm2ddl.auto=update”。

我想知道,我是否以正确的方式使用 Hibernate?还是总是建议先创建数据库模型再做其他事情。(或者这取决于你在做什么类型的项目)

抱歉我的拼写错误,如果有的话。

4

2 回答 2

1

您的方法是可以接受的,这就是您通常原型和开始新项目的方式。然而,一旦你稳定下来,你应该采取更多的行动。首先检查 Hibernate 生成的脚本。自定义外键名称、约束、数据类型等。它们并不总是完美的。

此外要注意update策略。这并不总是正确的。在现实世界中,一旦您推出了应用程序的第一个版本,您将需要更稳定的工具,例如来管理数据库迁移。

于 2013-02-02T20:17:27.093 回答
0

我认为这在开发环境中是可以的,但你显然不能在生产环境中删除表。

我们之前遇到过类似的问题,我们曾经让 hibernate 在本地创建表,但在 qa 和 staging 上使用 SQL ddl 脚本。我们遇到了数据类型不一致的问题。

因此,您必须确保数据类型等始终匹配。

我想最好的做法是准确地反映您在 prod on dev 中所做的事情,并使用相同的 SQL 脚本来创建表。

于 2013-02-02T20:18:00.017 回答