Oi pessoal, estou começando a utilizar o hibernate e preciso mapear uma tabela que possui algumas chaves compostas, no entanto, inclui no meu hbm.xml a seguinte referencia:
<composite-id>
<key-property name="passa" column="PASSA" type="java.lang.String" length="40"/>
<key-property name="horapartida" column="HORAPARTIDA" type="java.lang.String" length="5"/>
<key-property name="empresa" column="EMPRESA" type="java.lang.String" length="40"/>
<key-property name="linha" column="LINHA" type="java.lang.String" length="10"/>
</composite-id>
No entanto, quando eu chamo o metodo buildSessionFactory() para carregar as configurações a seguinte exceção é lançada:
net.sf.hibernate.MappingException: composite-id class must override equals(): pojo.Linha
Gostaria de saber se alguem sabe o que pode estar acontecendo.
Andei pesquisando e a maioria das pessoas associa uma classe a uma chave composta, é realmente preciso fazer isso? Eu tenho que criar uma outra classe para representar a chave composta? e então fazer:
<composite-id name="id" class="Composta">>
<key-property name="passa" column="PASSA" type="java.lang.String" length="40"/>
<key-property name="horapartida" column="HORAPARTIDA" type="java.lang.String" length="5"/>
<key-property name="empresa" column="EMPRESA" type="java.lang.String" length="40"/>
<key-property name="linha" column="LINHA" type="java.lang.String" length="10"/>
</composite-id>
Essa é a unica solução?