什么';s对应于postgreSQL的Java数据类型';JPA中的小数是多少?

什么';s对应于postgreSQL的Java数据类型';JPA中的小数是多少?,postgresql,jpa,orm,Postgresql,Jpa,Orm,我在我的postgreSQL数据库中定义了这个表,并且我正在使用JPA作为我的应用程序。在与长度相对应的对象属性中应该使用什么数据类型?我尝试使用double,但出现以下错误: 原因:org.hibernate.tool.schema.spi.SchemaManagementException:架构验证:表[band]中的[length]列中遇到错误的列类型;找到[numeric(类型#numeric)],但应为[float8(类型#DOUBLE)] java.math.BigDecimal F

我在我的postgreSQL数据库中定义了这个表,并且我正在使用JPA作为我的应用程序。在与
长度
相对应的对象属性中应该使用什么数据类型?我尝试使用
double
,但出现以下错误:

原因:org.hibernate.tool.schema.spi.SchemaManagementException:架构验证:表[band]中的[length]列中遇到错误的列类型;找到[numeric(类型#numeric)],但应为[float8(类型#DOUBLE)]


java.math.BigDecimal


From

java.math.BigDecimal


在许多JPA提供商中,From

double
完全可以映射到十进制。但是,
float
也是如此<代码>大十进制是另一个选项


如果有问题,我建议您在JPA提供者中提出一个bug,或者在JPA
@Column
注释中定义“columnDefinition”信息,在许多JPA提供者中,double完全可以映射到十进制。但是,
float
也是如此<代码>大十进制是另一个选项


如果有问题,我建议你在你的JPA提供者中提出一个错误,或者在JPA
@Column
注释中定义“columnDefinition”信息,postgreSQL的十进制如果映射到一个double将失去精度。除了他的精度为6,3,double可以处理这个问题!double可以在金融计算中给出(半个世纪以来就知道)错误,DECIMAL主键列建议使用精确计算的应用程序,但您可以使用字符串作为选项,并且不能执行其他操作。您的评论实际上是对OP的评论,而不是对这个答案的评论;-)postgreSQL的十进制如果映射到双精度,将失去精度。除了他的精度为6,3,双精度可以处理这个问题!double可以在金融计算中给出(半个世纪以来就知道)错误,DECIMAL主键列建议使用精确计算的应用程序,但您可以使用字符串作为选项,并且不能执行其他操作。您的评论实际上是对OP的评论,而不是对这个答案的评论;-)
CREATE TABLE band (
    length      DECIMAL(6, 3) PRIMARY KEY NOT NULL,
    resolution  DECIMAL(4, 1)             NOT NULL
);