hibernate.hbm2ddl.auto配置

时间:2014-09-17 21:34:27

标签: java oracle hibernate

我正在使用Oracle的hibernate。 由于一些官僚和不可更改的问题,我正在与其他人共享oracle架构。这意味着我使用了一些表,而其他人则使用其他表。

我想在这种情况下使用"hibernate.hbm2ddl.auto" = "create-drop",但我担心所有表都会被删除,包括那些不属于我的表。

我说错了吗?有什么选择?

4 个答案:

答案 0 :(得分:3)

hibernate.hbm2ddl.auto = create将删除并创建由hibernate实例映射的 only 表。所有其他表格(未映射)将未触及

答案 1 :(得分:1)

它不会,hibernate不会创建/删除模式,因此它不知道其他表。它的一切工作都在于它们的配置。

答案 2 :(得分:0)

是的,如果已为这些表定义了映射,则将重新创建它们。

其他选项设置为hibernate.hbm2dll.auto=update,甚至可以完全删除。正如您create-drop一样,它会在会话结束时清除架构。如果您希望每次启动应用程序时都以新架构开始,则可能需要编写其他清理查询并在启动时调用它们。

答案 3 :(得分:0)

"hibernate.hbm2ddl.auto" = "create-drop"

我使用此选项在我的数据库中重新创建表格,这非常有帮助。