Hibernate, collection map e polimorfismo

Olá pessoal,

Estou adaptando um código meu para o meu projeto final e gostaria que vocês me ajudassem numa dúvida.

Eu tenho duas classes:

AbstractUnidade, que contém o atributo nome e outros e a classe UnidadeEstrutura.

E tenho o seguinte mapeamento para isso:

<hibernate-mapping>
    <class name="jogo.AbstractUnidade" table="unidade">
        <id name="id" type="int">
            <column name="idUnidade" />
            <generator class="native" />
        </id>
        <property name="nome" type="string">
            <column name="nome" length="25" />
        </property>
        <property name="qtdTurnos" type="int">
            <column name="qtdTurno" />
        </property>
        <map name="recursos" lazy="true" table="RecursoNecessario">
        	<key column="idUnidade" />
        	<index column="nomeRecurso" type="string" />
        	<element type="int" column="qtdNecessaria" not-null="true" />
        </map>      
	    <joined-subclass name="jogo.UnidadeEstrutura" table="unidadeestrutura">
	        <key column="idUnidade" />
	        <many-to-one
	        	name="raca"
	        	column="idRaca"
	        	class="jogo.Raca"
	        	not-null="true"        	
	        />               
	    </joined-subclass>        
    </class>
</hibernate-mapping>

E tenho uma outra classe, chamada Raca, que contém um map de UnidadeEstrutura onde o indice do Map é o nome da Unidade.

O mapeamento atual dela:

<hibernate-mapping>
    <class name="jogo.Raca" table="raca" >
        <id name="id" type="int">
            <column name="idRaca" />
            <generator class="native" />
        </id>
        <property name="nome" type="string">
            <column name="nome" length="25" unique="true"/>
        </property>
        <property name="descricao" type="string">
            <column name="descricao" />
        </property>
        <map 
        	name="estruturas" 
        	lazy="true" 
        	inverse="true"
        	cascade="save-update"
        	>
        	<key column="idRaca" />
        	<index column="nome" type="string" />
        	<one-to-many class="jogo.UnidadeEstrutura"/>
        </map>        
    </class>
</hibernate-mapping>

Reparem que dentro do map, o item “index” se refere a um atributo da superclasse “AbstractUnidade” e não da classe “UnidadeEstrutura”. Isso está fazendo o Hibernate dar um erro.

Alguém conhece como eu posso mapear o indice de um map com um atributo de uma super classe?

Muito agradecido!!

Pilot

Ninguém sabe? :cry: