Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使Hibernate拖放表级联_Hibernate_Jpa - Fatal编程技术网

使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
。这样我就可以先删除视图,然后引用表

通过使用
,您可以将用户定义的脚本与模式自动创建相结合

您可以在此处阅读有关这些属性的更多信息: