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

使用JNDI明显慢于persistence.xml中的显式连接(Jetty 9 / Hibernate)

没有persistence.xml的JPA