Lá no site da sun, diz que o tipo long aceita aproximadamente 19 casas decimais, isso significaria que se eu passasse um número que 14 casas e tentasse salvar, ele aceitaria, não é verdade? Só que eu fiz isso e deu um erro vermelho no eclipse dizendo que o número é maior do que o permitido!
Alguém sabe o que eu posso fazer pra solucionar isso?!!
O erro não é no Hibernate nem no Eclipse. É que você está provavelmente tentando fazer isto:
long cnpj = 12345678901234567;
Mas isso não é válido pela especificação do Java. O que você tem de fazer é isto:
long cnpj = 12345678901234567L;
não se esqueça do “L”
ThiagoWorldCoder
Eu tentei fazer isso, só que ele gravou uns números totalmente diferente!!!
De qualquer modo vou continuar tentando, muito obrigado, se tiver alguma idéia me avisa valeu!!!
ThiagoWorldCoder
não estou conseguindo resolver o problema pessoal, o long está salvando uns números estranhos…
maiconramones
Por favor defina o que são números estranhos…
T
thingol
O que provavelmente deve estar acontecendo é que para o número long = 12345678901234L, deve estar sendo salvo o número [telefone removido]. (Em hexadecimal, respectivamente B3A73CE2FF2 e 73CE2FF2.
Experimente salvar esse número; se for isso, é que em algum lugar (sei lá onde!) o número long (64 bits) está sendo truncado para 32 bits.