【问题标题】:Make Hibernate Drop Table Cascade使 Hibernate 丢弃表级联
【发布时间】:2015-11-28 03:17:51
【问题描述】:

我有hibernate.hbm2ddl.auto=create-drop 设置,但在hibernate 使用hibernate.import_files=db/create.sql 生成数据库后,我还基于SQL 中的一个表创建了一个视图。

下次运行休眠时不能删除现有的表,因为视图依赖于它。

如何使休眠删除表级联以便视图也被删除?

这样定义实体似乎没有效果

@Entity
@OnDelete(action = OnDeleteAction.CASCADE)
@Table(name = "MY_TABLE")

【问题讨论】:

    标签: hibernate jpa


    【解决方案1】:

    我遇到了完全相同的问题 - 阻止其他表被删除的视图定义(具有相应的 JPA 映射)。

    对我有用的解决方案是使用 javax.persistence.* 属性,让您可以更好地控制创建/删除脚本。所以我没有使用普通的hibernate.hbm2ddl.auto,而是使用了javax.persistence.schema-generation.database.action。这样我就可以先删除视图,然后再引用表。

    通过使用<property name="javax.persistence.schema-generation.create-source" value="script-then-metadata"/>,您可以将用户定义的脚本与架构自动创建结合起来。

    您可以在此处阅读有关这些属性的更多信息:https://docs.oracle.com/javaee/7/tutorial/persistence-intro005.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-16
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 2011-12-31
      • 1970-01-01
      相关资源
      最近更新 更多