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
Come si può vedere 9 cifre per Integer
non porta a valori negativi nel tipo Integer
.Lunghezza della chiave primaria per il tipo di dati Long in Java (e Iberna)?
Ma 19 cifre in Long
possono causare segno di troppo pieno ... Io di solito vedo NUMBER(18)
come tipo di colonna ID ...
E 'possibile avere un problema con la mappatura NUMBER(19)
per Long
in Hibernate?
Impossibile capire: quanto la lunghezza della colonna nella tabella in oracolo influisce sulla possibilità di ottenere numeri negativi nell'ID da Hibernate? – Andremoniy
'log (9'999'999'999'999'999'999)/log (2) = ~ 63.1166338029' quindi non è possibile mantenere questo valore in 63 bit (notare che ci sono 19 di' 9'). Quindi verrà usato il bit di segno ... E probabilmente l'errore di lancio di Hibernate. Questa è una domanda ... – gavenkoa
Ok, questa è una risposta: potrebbe essere usato il bit di segno. Quindi qual è la domanda? – Andremoniy