1

当 JOOQ 生成器使用数据库表生成记录时,它会将 'float' 类型的列映射为 Double 而不是 Float 为什么?

数据库:MySQL,

创建语句:

CREATE TABLE `product_attribute` (
  `id` int NOT NULL auto_increment,
  `value` float DEFAULT NULL,
  PRIMARY KEY (`id`)
)
4

1 回答 1

0

各种 SQL 方言对什么是 、 和 数据类型的解释略有不同REALFLOATJDBCDOUBLE PRECISION也是如此。

在 MySQL 中,FLOAT类型是一个不同精度的浮点数,因此它可以同时对应java.lang.Floatjava.lang.Double。为了安全起见,jOOQ 使用更高精度的表示,以便在从数据库读取时不会丢失任何数据。

如果您想要一个实际的java.lang.Float表示,那么请使用 MySQL 的REAL数据类型,并具有适当的精度。

于 2022-02-18T09:36:12.020 回答