5
日志(2 ^ 32)/日志(10)=〜9.63295986126
log(10^0.63295986126) / log(2) =~ 2.10264714​​605 > 2 位

日志(2 ^ 64)/日志(10)=〜19.2659197225
log(10^0.2659197225) / log(2) =~ 0.883366197155 < 2 位

如您所见,9 位数字Integer不会导致类型为负值Integer

但是 19 位数字Long会导致符号溢出...我通常将NUMBER(18)其视为 ID 列的类型...

在 Hibernate中映射NUMBER(19)到是否有问题?Long

4

1 回答 1

2

不要使用 Long - 它适用于数字。您永远不会乘、加、减 PK。(您甚至可能从未对它们进行排序)。对于 Oracle 数据类型 NUMBER,使用 oracle.sql.NUMBER 或 java.math.BigDecimal。

于 2013-03-05T14:50:34.840 回答