5
ログ (2^32) / ログ (10) =~ 9.63295986126
ログ (10^0.63295986126) / ログ (2) =~ 2.10264714​​605 > 2 ビット

ログ (2^64) / ログ (10) =~ 19.2659197225
ログ (10^0.2659197225) / ログ (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 に答える