Srs,
Tenho a classe Vendedor que extende Pessoa, Pessoa tem um relacionamento 1-to-1 com Endereco, todas usariam a mesma chave (id_pesssoa).
Qndo eu salvo Vendedor são executadas 4 transações com o banco:
Hibernate: /* insert br.com.ydartes.bean.Vendedor / insert into pessoa (nome, telefone, email, celular, CPF, login, senha, acesso, id_pessoa) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: / insert br.com.ydartes.bean.Vendedor / insert into vendedor (id_vendedor) values (?)
Hibernate: / insert br.com.ydartes.bean.Pessoa / insert into pessoa (nome, telefone, email, celular, CPF, login, senha, acesso, id_pessoa) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: / insert br.com.ydartes.bean.Endereco */ insert into endereco (bairro, cidade, complemento, estado, numero, rua, cep, id_pessoa) values (?, ?, ?, ?, ?, ?, ?, ?)
Com isso e crio 2 Pessoas, 1 vendedor e 1 endereço, o endereço fica associada a 2 Pessoa criada.
uso Sessao.save(vendedor) e tudo acontece.
Vendedor.hbm.xml
<hibernate-mapping>
<joined-subclass name="br.com.ydartes.bean.Vendedor" extends="br.com.ydartes.bean.Pessoa" table="vendedor">
<key column="id_vendedor"/>
<set name="clientes"
inverse="true"
cascade="save-update">
<key column="vendedor_id"/>
<one-to-many class="br.com.ydartes.bean.Cliente"/>
</set>
</joined-subclass>
</hibernate-mapping>
Pessoa.hbm.xml
endereco.hbm.xml
pessoa