java - 在 Hibernate 中使用更新但仍要创建表

标签 java postgresql hibernate jpa

在我的项目中使用 Hibernate。我在日志中收到 create table 查询,

但我使用的是HBM2DDL_AUTO="update"

还有什么可能被错过?

PS:仅当表在运行时已存在时我才会收到这些日志。如果表不存在,它显然运行顺利。

这是属性

Properties settings = new Properties();
settings.put(Environment.DRIVER, "org.postgresql.Driver");
settings.put(Environment.URL, "jdbc:postgresql://" + jdbc_host + ":5432/" + jdbc_database + "?prepareThreshold=0");
settings.put(Environment.USER, jdbc_user);
settings.put(Environment.PASS, jdbc_password);
settings.put(Environment.DIALECT, "org.hibernate.dialect.PostgreSQLDialect");
settings.put(Environment.SHOW_SQL, "true");
settings.put(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread");
settings.put(Environment.HBM2DDL_AUTO, "update");

错误日志:

[INFO ]: org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
[INFO ]: org.hibernate.type.BasicTypeRegistry - HHH000270: Type registration [java.util.UUID] overrides previous : org.hibernate.type.UUIDBinaryType@3add81c4
[WARN ]: org.hibernate.boot.internal.InFlightMetadataCollectorImpl - HHH000069: Duplicate generator name wca_seq_generator
[WARN ]: org.hibernate.boot.internal.InFlightMetadataCollectorImpl - HHH000069: Duplicate generator name wca_seq_generator
[WARN ]: org.hibernate.boot.internal.InFlightMetadataCollectorImpl - HHH000069: Duplicate generator name wca_seq_generator
[INFO ]: org.hibernate.orm.connections.access - HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@59696551] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode.
[WARN ]: org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl - GenerationTarget encountered exception accepting command : Error executing DDL "create table WCA_MESSAGE_AUDIT (id int8 not null, createts times
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table WCA_MESSAGE_AUDIT (id int8 not null, create
    at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:559)
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:504)

最佳答案

我没有在java中使用过postgresql,但我使用过MySQL。每当我需要使用 hibernate 创建表时,我都会在 application.properties 中提到以下功能,它允许创建表。请尝试一次,如果仍然不起作用,请通知我。将其放入属性中。

spring.jpa.hibernate.ddl-auto=更新

关于java - 在 Hibernate 中使用更新但仍要创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61676245/

相关文章:

postgresql - 如何使用 PERCENTILE_CONT 和 GROUP BY id 计算单位价格中值

postgresql - 将行插入 postgresql 表

java - Hibernate 逆向工程向导 - 可用表为空 - 问题

java - 使用 JAXB 在 Java 中编码

java - Android扫描apk中的包中的文件

java - 将 Base64 转换为 png 格式的图像文件而不保存文件。可能的

java - 在 Jasper 报告中将 String 转换为 Long

sql - postgresql查询查看: for each author, 列出自己的合著者总数

java - JPA/Hibernate 代理未获取真实对象数据,将所有属性设置为空

java - JPA OneToOne,外键在 Spring Boot 上获取 null