Como inserir uma Foreign Key nula em um registro via HIBERNATE no Eclipse

9 respostas
C

Boa tarde pessoal…

To com o seguinte problema: tenho uma tabela X que tem uma chave estrangeira que não é obrigatoria no banco (null), mais quando vou inserir um registro dessa tabela X no banco da erro…Analisei os acontecimentos do Hibernate e acho que ta setando 0 em vez de null no banco de dados e é por isso que dando esse erro ja que o 0 nao pertence a segunda tabela que me fornece a chave estrangeira…Se alguem puder me ajudar ficarei grato…

9 Respostas

Demolidor

Posso vero o código da sua classe e a servlet ou o que esta utilizando para a regra?

C

segue as classes de mapeamento (hbm.xml):


--a coluna que chave estrangeira - trbcSeq

<many-to-one name="tipoReducaoBaseCalculo" class="br.sdg.principal.dominio.TipoReducaoBaseCalculoDTO"
     column="trbcSeq" not-null="false" cascade="all"/>


--a coluna que chave estrangeira - trbcSeq

<set name="listaComportamentoTransferencia" inverse="false">
     	<key column="trbcSeq" not-null="false"/>
        <one-to-many class="br.sdg.suprimentos.produto.ComportamentoTransferenciaDTO"/>
     </set>

Observe que eu fiz uma dupla visibilidade...

Demolidor

E posso ver a classe ?

C

Na classe quando vou inserir, eu verifico se o meu objeto tem alguma coisa…se nao tiver eu seto ele como NULL…os outros codigos da classe não alteram em nada o funcionamento…RESUMINDAMENTE eu queria fazer com que o Hibernate no momento de inserir na minha tabela que recebe a chave estrangeira, inserisse apenas NULL no campo chave estrangeira…

Atualmente ele esta setando para 0 ao inves de aceitar null…

Demolidor

Qual o tipo de dado que esta utilizando como @id?

Fernando_Generoso_da

Primeiro,

Se um campo é chave, o valor é único e OBRIGATORIAMENTE NOT NULL…

Foreign Key tem que ser chave de uma outra tabela.

Logo, não é possível tu ter uma foreign key com valor NULL

Fernando

Demolidor

Esta enganado amigo, pode receber null sim…

Fernando_Generoso_da

Uma PK pode ser null?? não teria sentido…Posso estar enganado, mas Primary key é única e implicitamente NOT NULL.

Fernando

Demolidor

PK não pode ser null, primary key é obrigatório, mas você pode fazer o relacionamento entre uma tabela e outra, sem que a que a tabela que esta recebendo o relacionamento precise de um valor no campo obrigatoriamente.

Criado 21 de agosto de 2009
Ultima resposta 21 de ago. de 2009
Respostas 9
Participantes 3