繁体   English   中英

Java(和Hibernate)中Long数据类型的主键长度?

[英]Length of primary key for Long data type in Java (and Hibernate)?

log(2^32) / log(10) =~ 9.63295986126
log(10^0.63295986126) / log(2) =~ 2.10264714605 > 2 bit

log(2^64) / log(10) =~  19.2659197225
log(10^0.2659197225) / log(2) =~ 0.883366197155 < 2 bit

正如您所看到的, Integer 9位数字不会导致Integer类型的负值。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM