使Hibernate拖放表级联
我有使Hibernate拖放表级联,hibernate,jpa,Hibernate,Jpa,我有hibernate.hbm2ddl.auto=create drop设置,但在hibernate使用hibernate.import\u files=db/create.SQL生成数据库后,我还基于SQL中的一个表创建了一个视图 下次运行hibernate时,无法删除现有表,因为视图依赖于该表 如何使hibernate删除表级联,以便视图也被删除 这样定义实体似乎没有效果 @Entity @OnDelete(action = OnDeleteAction.CASCADE) @Table(na
hibernate.hbm2ddl.auto=create drop
设置,但在hibernate使用hibernate.import\u files=db/create.SQL生成数据库后,我还基于SQL中的一个表创建了一个视图
下次运行hibernate时,无法删除现有表,因为视图依赖于该表
如何使hibernate删除表级联,以便视图也被删除
这样定义实体似乎没有效果
@Entity
@OnDelete(action = OnDeleteAction.CASCADE)
@Table(name = "MY_TABLE")
我遇到了完全相同的问题——视图定义(带有相应的JPA映射)阻止了要删除的其他表
对我来说,有效的解决方案是使用javax.persistence.*属性,它使您能够更好地控制创建/删除脚本。因此,我使用了javax.persistence.schema generation.database.action
,而不是使用普通的hibernate.hbm2ddl.auto
。这样我就可以先删除视图,然后引用表
通过使用
,您可以将用户定义的脚本与模式自动创建相结合
您可以在此处阅读有关这些属性的更多信息: