Mapeamento Hibernate com Annotations

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.

&lt;class name="Endereco"  table="ENDERECO"&gt;      
    &lt;id name="id" column="ID_UNIVERSIDADE" type="int"&gt;
        &lt;generator class="foreign"&gt;
            &lt;param name="property"&gt;universidade&lt;/param&gt;
        &lt;/generator&gt;
    &lt;/id&gt;          
    &lt;property name="rua"/&gt;        
    &lt;property name="numero"/&gt;        
    &lt;property name="bairro"/&gt;        
    &lt;property name="cidade"/&gt;                
    &lt;property name="uf"/&gt;        
    &lt;property name="cep"/&gt;     
    &lt;one-to-one name="universidade"
          class="Universidade"	
          constrained="true"/&gt;
&lt;/class&gt;

</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 :?:

então dig-só. Nao sei se você já viu a documentacao do Hibernate. Essa parte fala exatamente como mapear um herança.

Eu até te passaria o link direto, mas a página do hibernate nao está abrindo aqui…

Mas bem, annotations.hibernate.org

Procure na documentação sobre ‘mapping inheritance’.

Na realidade, o que você mais vai usar, vao ser as anotacoes da api de persistencia do Java, e poucas do Hibernate. A Java Magazine 39 fala bastante sobre isso.

Qualquer coisa, de um toque ae.

[]