gpt4 book ai didi

postgresql - 使用 PostgreSQL 9.5 进行 JPA 模式验证

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

我正在使用 JPA(hibernate)和 Postgres 数据库,我的 hibernate 数据库配置如下:

properties.setProperty("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect");
properties.setProperty("hibernate.hbm2ddl.auto","validate");

我有一个属性为 created_by_user_id 的表

CREATE TABLE dppm_main.user_account_profile
( ....//other columns
created_by_user_id integer
)

映射到 JPA 实体如下:

@Column(name = "created_by_user_id")
private Long createdByUserId;

在进行架构验证时,出现以下错误:

org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column 
type encountered in column [created_by_user_id] in table [user_account_profile];
**found [int4 (Types#INTEGER)], but expecting [int8 (Types#BIGINT)]**

我该如何解决?我在很多地方都遇到了这个问题,所以是否可以通过扩展 PostgreSQL82Dialect 而不是 columnDefinition 来解决它。

最佳答案

异常显然是关于 Java 类型和 Postgres 类型之间的类型不匹配。

我没看清楚你在Postgres中的类型是什么,所以我会指出几个类型转换:

Postgres:smallint to Java --> java.lang.Short

Postgres: integer to Java --> java.lang.Integer

Postgres:bigint to Java --> java.lang.Long

话虽如此,只需更改:

@Column(name = "created_by_user_id")
private Long createdByUserId;

收件人:

@Column(name = "created_by_user_id")
private Integer createdByUserId;

关于postgresql - 使用 PostgreSQL 9.5 进行 JPA 模式验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39855979/

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