我正在使用Oracle的hibernate。 由于一些官僚和不可更改的问题,我正在与其他人共享oracle架构。这意味着我使用了一些表,而其他人则使用其他表。
我想在这种情况下使用"hibernate.hbm2ddl.auto" = "create-drop"
,但我担心所有表都会被删除,包括那些不属于我的表。
我说错了吗?有什么选择?
答案 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"
我使用此选项在我的数据库中重新创建表格,这非常有帮助。