使用JPA方式生成DDL失效:仅生成SQL文件但数据库无表
Hibernate 6.1.6.FINAL下JPA方式生成DDL仅生成文件但数据库无表的问题
当前使用Hibernate 6.1.6.FINAL版本,通过原生Hibernate方式(配置hibernate.hbm2ddl.auto)可依据映射注解正常生成数据库DDL,配置如下:
<persistence-unit name="com.whatever.persistence.jpa"> <description> A template for building a persistence layer/module. </description> <properties> <property name="jakarta.persistence.jdbc.driver" value="org.h2.Driver" /> <property name="jakarta.persistence.jdbc.url" value="jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1" /> <property name="jakarta.persistence.jdbc.user" value="sa" /> <property name="jakarta.persistence.jdbc.password" value="" /> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.hbm2ddl.auto" value="create" /> </properties> </persistence-unit>
但采用JPA方式生成DDL时,虽成功创建tables.sql文件,数据库中却未生成对应表,相关配置如下:
<persistence-unit name="com.whatever.persistence.jpa"> <description> A template for building a persistence layer/module. </description> <properties> <property name="jakarta.persistence.jdbc.driver" value="org.h2.Driver" /> <property name="jakarta.persistence.jdbc.url" value="jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1" /> <property name="jakarta.persistence.jdbc.user" value="sa" /> <property name="jakarta.persistence.jdbc.password" value="" /> <property name="hibernate.show_sql" value="true" /> <property name="jakarta.persistence.schema-generation.scripts.action" value="create"/> <property name="jakarta.persistence.schema-generation.create-source" value="metadata"/> <property name="jakarta.persistence.schema-generation.scripts.create-target" value="tables.sql"/> </properties> </persistence-unit>
内容的提问来源于stack exchange,提问作者kladderradatsch
相关产品推荐
相关产品推荐

