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