Problema com tipo long no hibernate

5 respostas
ThiagoWorldCoder

bom dia pessoal!!!

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?!!

obrigado pela atenção!!!

5 Respostas

T

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

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.

Criado 12 de fevereiro de 2008
Ultima resposta 13 de fev. de 2008
Respostas 5
Participantes 3