Foreing Key não está sendo atribuida automaticamente (RESOLVIDO)  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
rafaelbrizola
Thread.start()

Membro desde: 27/03/2006 23:42:46
Mensagens: 33
Offline

Salve galera,
Tenho 2 tabelas: Pessoa e Login e a relação entre elas é 1 para 1.

Tabela Pessoa
ID_PESSOA
...... (outros campos)

Tabela Login
ID_LOGIN (primary key)
ID_PESSOA (foreign key para a Tabela PESSOA)
..... (outros campos)

As classes estão mapeadas assim:
PESSOA


LOGIN


Antes de salvar a entidade PESSOA, eu seto a pessoa dentro de login:


Mas quando tento salvar a entidade pessoa (e o login que é um atributo desta classe e deveria ser salvo junto) ocorre o seguinte erro:



No log dá pra ver que a entidade pessoa está sendo salva corretamente, o id do login está sendo gerado através da sequence, mas o id da pessoa não está sendo copiado para o campo niPessoa de login.

Alguém sabe oq está faltando?
Valeu!

This message was edited 1 time. Last update was at 03/12/2008 16:38:19

rafaelbrizola
Thread.start()

Membro desde: 27/03/2006 23:42:46
Mensagens: 33
Offline

Olhando o código fonte do Hibernate, me parece que os Generators só são tratados quando o campo tem a anotação @Id ou @EmbeddedId, conforme código abaixo: (Extraido do link http://www.docjar.com/html/api/org/hibernate/cfg/AnnotationBinder.java.html)



Alguém sabe se é assim mesmo? E se for, será que tem outro jeito pra fazer??
rafaelbrizola
Thread.start()

Membro desde: 27/03/2006 23:42:46
Mensagens: 33
Offline

Galera, descobri oq era. Eu estava mapeando a classe do jeito errado.
Eu tenho que por o @OneToOne e @JoinColumn em Login, não em Pessoa.
Segue abaixo como ficou:

PESSOA


LOGIN


Dessa maneira eu nem preciso criar o campo niPessoa em login, pois posso recurperar direto do atributo pessoa.
Bom, se alguém tiver esse problema, tae
[]'S
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team