在 JPA 中对应于 postgreSQL 的 DECIMAL 的 Java 数据类型是什么?


CREATE TABLE band (
    length      DECIMAL(6, 3) PRIMARY KEY NOT NULL,
    resolution  DECIMAL(4, 1)             NOT NULL
);

我在 PostgreSql 数据库中定义了此表,我正在使用 JPA 用于我的应用程序。我应该在与Length相对应的对象的属性中使用哪种数据类型?我尝试使用double,但我有以下错误:

由:org.hibernate.tool.schema.schema.schema.schemamanagementexception:架构 - 验证:错误的列类型:在表[band]中列[长度]中遇到的列类型错误;找到[数字(类型#numeric)],但期望[float8(types#double)]

java.math.BigDecimal

从这里

double在许多JPA提供商中完全可以绘制到十进制。但是float也是如此。BigDecimal是另一个选择。

如果有问题,我建议您在JPA提供商中提出错误,或在JPA @Column注释中定义" columndefinition"信息

最新更新