Foreign Key nao obrigatoria

6 respostas
E

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…

6 Respostas

E

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?

E

nao estou usando nenhum framework para persistencia… é direto Postgre

E

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…

E

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.

B

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.

E

problema resolvido:

...
            if (venda.getCodigoVeiculoTroca()==null) {
		ppst2.setNull(9, Types.INTEGER);
	}else {
		ppst2.setInt(9, venda.getCodigoVeiculoTroca());
	}
	ppst2.executeUpdate();
...
Criado 11 de março de 2009
Ultima resposta 12 de mar. de 2009
Respostas 6
Participantes 3