Urgente.. Ajuda com Hibernate

2 respostas
W

Ai galera to com um problemão no mapeamento com hibernate… o problema é que meu MER possui chaves compostas com muitos campos… vou colocar um exemplo:

<composite-id blabbla...>
     
     <key-many-to-one blabla...>
               <column name="COLUNA_1" />
               <column name="COLUNA_2" />
    </key-many-to-one>
     <key-many-to-one blabla...>
               <column name="COLUNA_1" />
               <column name="COLUNA_3" />
               <column name="COLUNA_4" />
    </key-many-to-one>
</composite-id>

Esse é o exemplo de mapeamento da chave primario da classe Ex1 blz!
Agora vamos colocar o exemplo da chave primaria de Ex2 que se relaciona com Ex1… e agora vem o problema…

<composite-id blabbla...>
     <!-- Aqui eu vou fazer o relacionamento com o Ex1.. MAIS COMO EU FAçO ISSO.. já que la a coluna 1 se repete pra dois key-many-to-one -->
     <key-many-to-one blabla...>
               <column name="COLUNA_1" />
               <column name="COLUNA_2" />
               <column name="COLUNA_1" />
               <column name="COLUNA_3" />
               <column name="COLUNA_4" />
    </key-many-to-one>
    <!-- ou assim -->
     <key-many-to-one blabla...>
               <column name="COLUNA_1" />
               <column name="COLUNA_2" />
               <column name="COLUNA_3" />
               <column name="COLUNA_4" />
    </key-many-to-one>
</composite-id>

Eu tentei os dois jeitos e ficou dando uma exeção falando que o numero de colunas do id tá errada… alguem ja encontrou esse problema ao fazer o mapeamento OO??

2 Respostas

S
Seguinte, eu acho que tive o mesmo problema uma vez: Eu tinha chaves compostas em uma tabela pai e depois as mesmas na tabela filha, como exemplo abaixo:
&lt;class name="Titulo" table="tbl_titulos"&gt;
		&lt;composite-id class="TituloPK" name="Id"&gt;
			&lt;key-property
				column="tit_numero"
				name="numero"
				type="integer"
			 /&gt;
			 &lt;key-property
				column="tit_tipo_doc"
				name="tipoDocumento"
				type="string"
			 /&gt;
		&lt;/composite-id&gt;

		&lt;class name="TituloParcela" table="tbl_titulos_parcela"&gt;
		&lt;composite-id class="TituloParcelaPK" name="Id"&gt;
			&lt;key-property
				column="tpa_parcela"
				name="parcela"
				type="string"
			 /&gt;
			&lt;key-many-to-one name="numero" class="Titulo"&gt; 
			   &lt;column name="tit_numero"/&gt; 
			   &lt;column name="tit_tipo_doc"/&gt; 
			&lt;/key-many-to-one&gt; 
		&lt;/composite-id&gt;
Só que o Hibernate, ele obriga vc a colocar as chaves que ficam dentro do seu relacionamento na ordem correta de acordo com a tabela pai. Observe o exemplo que acho que vc vai conseguir entender.

Abraços! Espero ter ajudado em algo!

W

mais ai as três colunas são diferentes… o problema é quando elas são iguais… mais valeu pela ajuda…

Criado 15 de março de 2005
Ultima resposta 15 de mar. de 2005
Respostas 2
Participantes 2