Estou com problemas para definir o ID (chave primária) no meu mapeamento hibernate, utilizando joined-subclass. Eu consegui um paleativo, mapeei como property, mas assim não consigo buscar com load. Já estou tentando há algum tempo, pesquisando na Internet, mas nada. Será que alguém poderia me ajudar. Obrigado!
Vou colocar o arquivo de mapeamento aqui:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="br.com.trimbase.rastreio.Agente" table="agente">
<id name="cod" column="agecod" type="integer">
<generator class="native">
<param name="sequence">agente_agecod_seq</param>
</generator>
</id>
<property name="nome" column="agenom"/>
<property name="obs" column="ageobs"/>
<set name="enderecos" table="endereco">
<key column="endage" not-null="false"/>
<one-to-many class="br.com.trimbase.rastreio.Endereco"/>
</set>
<set name="comunicacoes" table="comunicacao">
<key column="comage" not-null="false"/>
<one-to-many class="br.com.trimbase.rastreio.Comunicacao"/>
</set>
<joined-subclass name="br.com.trimbase.rastreio.ClientePF" extends="br.com.trimbase.rastreio.Agente"
table="clientepf">
<key column="cliage"/>
<property name="rg" column="clirg"/>
<property name="cpf" column="clicpf"/>
</joined-subclass>
<joined-subclass name="br.com.trimbase.rastreio.Motorista" extends="br.com.trimbase.rastreio.Agente"
table="motorista">
<key column="motage"/>
<property name="celular" column="motcel"/>
<property name="senha" column="motsen"/>
<property name="senhaRoubo" column="motsenroubo"/>
</joined-subclass>
<joined-subclass name="br.com.trimbase.rastreio.Empresa" extends="br.com.trimbase.rastreio.Agente"
table="empresa">
<key column="empage"/>
<property name="cod" column="empcod"/>
<property name="fuso" column="empfuso"/>
<property name="cnpj" column="empcnpj"/>
<property name="ie" column="empie"/>
<property name="im" column="empim"/>
<set name="contatos" table="contato" cascade="save-update">
<key column="conemp" not-null="false"/>
<one-to-many class="br.com.trimbase.rastreio.Contato"/>
</set>
<set name="veiculos" table="veiculo">
<key column="veiageemp" not-null="false"/>
<one-to-many class="br.com.trimbase.rastreio.Veiculo"/>
</set>
<set name="pontos" table="pontodeinteresse">
<key column="ponintemp" not-null="false"/>
<one-to-many class="br.com.trimbase.rastreio.PontoDeInteresse"/>
</set>
</joined-subclass>
<joined-subclass name="br.com.trimbase.rastreio.Usuario" extends="br.com.trimbase.rastreio.Agente"
table="usuario">
<key column="usuage"/>
<property name="nivel" column="usuniv"/>
<property name="login" column="usuusu"/>
<property name="senha" column="ususen"/>
</joined-subclass>
<joined-subclass name="br.com.trimbase.rastreio.Franquia" extends="br.com.trimbase.rastreio.Agente"
table="franquia">
<key column="franage"/>
<property name="cod" column="francod"/>
<one-to-one name="cobranca" class="br.com.trimbase.rastreio.Cobranca"/>
<set name="empresas" table="empresa">
<key column="empfran" not-null="false"/>
<one-to-many class="br.com.trimbase.rastreio.Empresa"/>
</set>
</joined-subclass>
</class>
</hibernate-mapping>