Hibernate创建,不更新,不丢弃。

时间:2014-12-17 17:05:18

标签: sql spring hibernate jpa jpa-2.0

hibernate orm选项,创建,创建,删除,更新和验证。

有没有人说,创建一次,但不要删除或更新?

一个选项,如果不存在则创建,不会更新,不会丢弃?

3 个答案:

答案 0 :(得分:1)

您正在寻找的create-once并不是作为休眠标志存在的。对于您的方案,最好使用外部工具管理数据库的DDL,而不是使用hibernate.hbm2ddl.auto。在Pesonally,我可以推荐http://www.liquibase.org/,它被宣传为数据库的源代码控制,它真的支持开发,当使用快速变化的模型处理不同的分支时。

Liquibase以changeLog.xml文件为中心,该文件存储应用于数据库的所有更改。因此,当您对模型进行更改时,会生成一个diff,从而生成changeLog.xml的xml条目。底层数据库会跟踪应用的更改,因此您可以,重新创建,应用更新,生成迁移SQL,清空数据库或保持原样,您可以控制。

答案 1 :(得分:1)

这是一个现有的讨论,总结了hibernate.hbm2ddl.auto的选项。 hbm2ddl discussion

使用Hibernate的商店通常使用由DBA直接运行的SQL DDL脚本来分别管理物理数据库层,而不是允许Hibernate工具修改数据库模式。如果您仍希望Hibernate为您运行这些,则可以使用hibernate.hbm2ddl.import_files选项通过提供自定义脚本文件手动调整DDL操作。

在您的情况下,如果您希望让您的ORM决定相反的动态模型,您可以将您的hbm2ddl.auto保留为“更新”。另一种选择是以编程方式生成hibernate.hbm2ddl.import_files中引用的脚本文件,使用实体映射或元数据(注释)作为指导输入。

答案 2 :(得分:0)

我必须为此编写自己的解决方案。使用hibernate或jpa是不可能的。

相关问题