当 JOOQ 生成器使用数据库表生成记录时,它会将 'float' 类型的列映射为 Double 而不是 Float 为什么?
数据库:MySQL,
创建语句:
CREATE TABLE `product_attribute` (
`id` int NOT NULL auto_increment,
`value` float DEFAULT NULL,
PRIMARY KEY (`id`)
)
当 JOOQ 生成器使用数据库表生成记录时,它会将 'float' 类型的列映射为 Double 而不是 Float 为什么?
数据库:MySQL,
创建语句:
CREATE TABLE `product_attribute` (
`id` int NOT NULL auto_increment,
`value` float DEFAULT NULL,
PRIMARY KEY (`id`)
)
各种 SQL 方言对什么是 、 和 数据类型的解释略有不同REAL
,FLOAT
JDBCDOUBLE PRECISION
也是如此。
在 MySQL 中,FLOAT
类型是一个不同精度的浮点数,因此它可以同时对应java.lang.Float
或java.lang.Double
。为了安全起见,jOOQ 使用更高精度的表示,以便在从数据库读取时不会丢失任何数据。
如果您想要一个实际的java.lang.Float
表示,那么请使用 MySQL 的REAL
数据类型,并具有适当的精度。