persistence.xml:hibernate.hbm2ddl.auto=create-drop 不工作
Posted
技术标签:
【中文标题】persistence.xml:hibernate.hbm2ddl.auto=create-drop 不工作【英文标题】:persistence.xml : hibernate.hbm2ddl.auto=create-drop not working 【发布时间】:2020-03-30 18:54:20 【问题描述】:我的应用中的 create-drop 出现问题。
在 persistence.xml 文件中我有一行:
<property name="hibernate.hbm2ddl.auto=create-drop" value="create-drop"/>
但每次我重新启动我的应用程序时,hibernate_sequence 都不会重置。如何解决?
【问题讨论】:
【参考方案1】:正确的命名是:
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
属性名称是hibernate.hbm2ddl.auto
而不是hibernate.hbm2ddl.auto=create-drop
【讨论】:
当我这样做时,我得到WARN: GenerationTarget encountered exception accepting command : Error executing DDL "drop table Indeks if exists" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "drop table Indeks if exists" via JDBC Statement at [...] Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Nie można skasować "INDEKS" ponieważ zależy od "FKS9O4U4X1HIRR6HNWF5URMO7CW" Cannot drop "INDEKS" because "FKS9O4U4X1HIRR6HNWF5URMO7CW" depends on it; SQL statement: drop table Indeks if exists [90107-200]
@Karol 有一个依赖于它的表。你在级联相关实体吗?
是:在 Index.java @OneToOne(mappedBy = "indeks", cascade = CascadeType.ALL) private Student student;
和 Student.java 中:@OneToOne(cascade = CascadeType.ALL) private Indeks indeks;
以上是关于persistence.xml:hibernate.hbm2ddl.auto=create-drop 不工作的主要内容,如果未能解决你的问题,请参考以下文章
在 persistence.xml hibernate 中移除 <class> 标签的使用
如何在 Wildfly 部署时设置 hibernate.hbm2ddl.auto 不使用 persistence.xml
JPA persistence.xml 和 MySQL - 没有采用正确的“hibernate.connection.url”目录
Bitronix + Spring + Hibernate + Persistence