Relacionamento One-to-One - Gerar chave do "filho" baseado na chave do "pai"

3 respostas
sinister182

Boa noite pessoa,

Comecei a estudar hibernate e estou me batendo com a seguinte situação:
Eu possuo uma classe chamada Pessoa que contem um atributo do tipo Endereço, esse relacionamento é um-para-um unidirecional partindo de pessoa, ou seja a Pessoa tem conhecimento do endereço mas o endereço não tem conhecimento de Pessoa.

Tentei algo como:

<id name="id" column="enderecoId"> <generator class="foreign"> <param name="property">pessoaId</param> </generator> </id>

Mas pelo fato de não ter essa referência a pessoa essa abordagem não é adequada.

A dúvida é a seguinte:
Como faço para que a geração do id da classe Endereço seja baseado no id da Pessoa sendo que não possuo uma referência a pessoa na minha classe Endereço ?

Andei procurando mas não achei essa geração automática para relacionamento um-para-um unidirecional.

Agradeço pela atenção de todos que lerem o tópico e ainda mais pelos que tiverem alguma ideia de como me ajudar.

Abraços.

3 Respostas

A

cara,

já que esta começando a estudar Hibernate, utilize Anotação. Mais facil e menos complexo de se entender.

t+

sinister182

alissonvla:
cara,

já que esta começando a estudar Hibernate, utilize Anotação. Mais facil e menos complexo de se entender.

t+

Opa, obrigado pela sugestão alissonvla. Na realidade eu nunca gostei muito de utilizar annotations,a cho que deixa o código meio “poluido” mesmo que seja “mais simples”.

De qualquer forma muito obrigado pela colaboração :D.

Abraço.

A

cara,

vo te passar um exemplo em anotação, entao é so passar xml.
na sua classe Pessoa

@JoinColumn(name = "CHAVE_ESTRAGEIRA", referencedColumnName = "CHAVE_PRIMARIA")
    @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    private Endereco endereco;

t+

Criado 23 de outubro de 2011
Ultima resposta 24 de out. de 2011
Respostas 3
Participantes 2