如何在休眠时指定Double的精度?

2022-09-01 00:44:42

我尝试从休眠注释创建一个表。我需要有一个双精度类型的列,指定长度为:(10,2)。所以SQL语法显示如下:

... DOUBLE(10,2) ....

我试图这样做:

@Column(length = 10, precision = 2) ...

但是当我查看我创建的表时,它没有指定双列的长度。休眠是否有解决方案,或者是否有必要手动更改表配置?

谢谢!


答案 1

仅当使用字符串值列时,列批注的元素才适用。在您的情况下,您应该使用 和 元素。lengthprecisionscale

@Column(precision=10, scale=2)

以下是规范中关于它们的内容:

  • int - precision- (可选)十进制(精确数字)列的精度。(仅当使用十进制列时才适用。
  • int - scale- (可选)十进制(精确数字)列的小数位数。(仅当使用十进制列时才适用。

引用

  • JPA 1.0 规范
    • 第 9.1.5 节 “列注释”

答案 2
@Column(name="Price", columnDefinition="Decimal(10,2) default '100.00'")

在 JPA 中设置列的缺省值


推荐