Problemas com NULL em chaves estrangeiras

Tenho uma tabela Cliente que possui a chave estrangeira CODLOC que referencia a chave primária da tabela de Localidades.

O problema é: Quando eu removo uma localidade, os clientes daquela localidade têm o campo CODLOC setados para NULL. Se eu quiser ler os dados do cliente (Hibernate) um campo do tipo inteiro DEVERIA receber o valor da Localidade, porém, como essa foi setada pra NULL o software trava.

Alguém tem alguma solução pra isso??

Att. Ulisses Nunes

Boas…

Então, lendo o seu problema, percebe-se que não está havendo integridade alguma, pois, nesse caso a localidade não poderia ser excluida, já que existem clientes que a referenciam.
Se vc definiu a coluna CodLoc na tabela clientes como FOREIGN KEY, referenciando a tabela localidades o SGBD deveria gerar um erro do tipo
“violates foreign key constraint”

Vc poderia criar uma coluna na sua tabela localidade “inativo”, setando para true caso vc o quisesse excluir.

O lance é que de acordo com os cadastros podem haver clientes sem localidades, por isso não posso colocar essa constraint.

Havendo a necessidade de cadastrar um cliente sem localidade, vc pode passar para o codloc = null

insert cliente(id_cliente, nome, id_loc) values(100, ‘Robinson’, NULL);

Isso funciona, no Oracle, PostgreSQL, sqlServer…

Mas o problema é na hora de ler os dados, pois o hibernate vai tentar ler o inteiro relativo ao código da localidade e acaba encontrando NULL, o que gera um erro e trava o sistema, sacou.

pode criar a constraint sim!!! basta “nao” colocar o campo como not null!!!
eu ja fiz programas assim: tenho uma foreign key que nao é obrigatoria, mas se ela tiver preechida a referencia nao pode ser excluida!!

O campo pode ser null, como disse acima o problema é na leitura.

eita…então de uma olhada na documentação do Hibernate, para saber como deve ser tratada a leitura de um campo do tipo int, e quando o mesmo esta NULL…

Não esqueça de postar a solução…