Eu preciso fazer um mapeamento de duas Classes conforme abaixo:
Class Pessoa {
private Integer id;
private String nome;
.....
}
Class Usuario {
private Integer id;
private String nomeLogin;
private Pessoa pessoa;
.....
}
Eu preciso fazer o mapeamento destas duas classes de forma que quando eu salvar o Usuario a Pessoa também seja salvo no banco de dados e o mesmo id seja compartilhado entre ambas.
É possível fazer isso?
Eu encontrei um exemplo na net que faz esse tipo de mapeamento, mas não é com annotations, veja abaixo:
[i]
Para utilizar a tag <one-to-one> no arquivo Universidade.hbm.xml, o mapeamento do endereço em Endereco.hbm.xml deve ser feito como mostrado na Listagem 11.
…
<class name="Endereco" table="ENDERECO">
<id name="id" column="ID_UNIVERSIDADE" type="int">
<generator class="foreign">
<param name="property">universidade</param>
</generator>
</id>
<property name="rua"/>
<property name="numero"/>
<property name="bairro"/>
<property name="cidade"/>
<property name="uf"/>
<property name="cep"/>
<one-to-one name="universidade"
class="Universidade"
constrained="true"/>
</class>
</hibernate-mapping>
Relacionamento 1-1 em Endereco.hbm.xml
A primeira diferença para o mapeamento anterior da entidade Endereco é o valor do atributo class da tag generator agora é foreign. A tag param de name igual a property permite a associação 1-1 da classe Endereco com a classe Universidade, o que acontece é que um parâmetro é passado para a classe geradora do identificador, que neste caso é a propriedade universidade, que é da classe que se relaciona 1-1 com Endereco. A garantia de que um endereço pertença a uma única universidade vem do fato da chave primária da tabela ENDERECO (ID_UNIVERSIDADE) ser também a chave estrangeira que liga a Universidade.
O mapeamento 1-1 em Endereco de Universidade também é feito utilizando a tag <one-to-one>. A única novidade da tag é o atributo constrained que sendo igual a true, implica em existir uma relação entre a chave primária de Endereco e de Universidade, informando ao Hibernate que um endereço não pode existir sem que uma universidade exista.
[/i]
Eu preciso fazer este mesmo mapeamento utilizando Annotations, alguém pode me ajudar a fazer este mapeamento.
Agradeço quem puder ajudar :?: