gpt4 book ai didi

java - 为什么 h2 数据库驱动程序 (JPA) 不创建表而 postgres 做

转载 作者:行者123 更新时间:2023-11-29 12:12:51 25 4
gpt4 key购买 nike

在 JPA 项目中,当使用 postgresql 驱动程序时,表是自动生成的。当我切换到 h2 数据库驱动程序时,出现错误,找不到表。这让我假设,表格没有生成。

Postgresql 配置

<persistence-unit name="postgresql" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>...</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://127.0.0.1/example"/>
<property name="javax.persistence.jdbc.password" value="example"/>
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
<property name="javax.persistence.jdbc.user" value="example"/>
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
</properties>
</persistence-unit>

h2 配置

<persistence-unit name="OntoJobTestDB" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>...</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:test" />
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
<property name="eclipselink.ddl-generation.output-mode" value="database" />
</properties>
</persistence-unit>

最佳答案

事实证明,无法找到这些表,因为它们从未创建过。由 @Converter 注释引起的早期错误,这是 postgresql 特定的,阻止了表的创建。

我的建议是始终仔细检查调试输出。

关于java - 为什么 h2 数据库驱动程序 (JPA) 不创建表而 postgres 做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23633949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com