Olá…
tenho a tabela vendas com as fks idclientes, idveiculos e idveiculostroca…
porem a idveiculostroca nao é obrigatoria… se eu setar not null como false ela deixa de ser obrigatoria mas daí como irei passar um valor inteiro como null?
obrigado…
Foreign Key nao obrigatoria
6 Respostas
Você deveria usar Integer e não int nesse caso…
Só pra saber, você está fazendo via JDBC, ou está usando algum framework para persistência?
nao estou usando nenhum framework para persistencia… é direto Postgre
valeu a ajuda…
porem tenho um outro problema com foreign keys…
quando tento fazer uma gravação com chave estrangeira gera um erro de violação de fk
ex:
org.postgresql.util.PSQLException: ERROR: insert or update on table "vendas" violates foreign key constraint "vendas_clientes_idclientes"
Detalhe: Key (clientes_idclientes)=(0) is not present in table "clientes".
e o estranho é q eu tenho outras tabelas em que tenho fks e consigo gravar perfeitamente…
isso nao deve ser problema no postgre…
Como você está obtendo o cliente para associar com a venda?
Parece que você está querendo criar uma venda sem cliente, é isso?
Se sim, o valor de id_cliente deve ser null enão 0. Por isso você tem que usar Integer e não int.
Dentro dos teus objetos você pode usar zero para simular um nulo. É só tomar cuidado para que zeros não sejam um valor válido na tua aplicação.
problema resolvido:
...
if (venda.getCodigoVeiculoTroca()==null) {
ppst2.setNull(9, Types.INTEGER);
}else {
ppst2.setInt(9, venda.getCodigoVeiculoTroca());
}
ppst2.executeUpdate();
...