Bom dia pessoal, eu estou a dias com um problema que não estou conseguindo resolver!
Eu estou fazendo um mapeamento de many-to-many, gostaria de saber se eu sou obrigado a mapear a tabela de ligação também! Eu tenho uma classe Armazem, e uma classe Produto, a tabela de ligação tem uma classe chamada ProdutoArmazem, como eu faço esses mapeamentos?Alguém poderia me explicar?
Vejam os mapeamentos que eu fiz e se estão certos:
Da classe Armazem
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="br.com.consist.bean">
<!-- private String codigo;
private String nome;
private Tipo tipo;
private Endereco endereco;
-->
<class name="Armazem" table="SE_ARMAZEM">
<composite-id>
<key-many-to-one name="empresa" class="Empresa">
<column name="SE06_MAT_GRU" />
<column name="SE06_EMPRESA" />
</key-many-to-one>
<key-property name="codigo" type="integer" column="SE06_ARMAZEM" />
</composite-id>
<property name="nome" type="string" column="SE06_NOMEARM" />
<component name="endereco" class="Endereco">
<property name="bairro" type="string" column="SE06_BAIRRO" />
<property name="complemento" type="string" column="SE06_COM_END" />
<property name="logradouroNumero" type="integer" column="SE06_LOGRADO" />
<component name="cidade" class="Cidade">
<property name="codigo" type="integer" column="SE06_CIDADE" />
</component>
</component>
<component name="tipo" class="Tipo">
<property name="codigo" type="integer" column="SE06_TPARMAZ" />
</component>
<set name="produtosArmazem" inverse="true" table="SE_ESTOQ_ARMAZ" lazy="false" fetch="join">
<key >
<column name="SE22_MAT_GRU" />
<column name="SE22_EMPRESA" />
<column name="SE22_ARMAZEM" />
</key>
<many-to-many class="Produto">
<column name="SE14_MAT_GRU" />
<column name="SE14_PRODUTO" />
</many-to-many>
</set>
Da classe Produto:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="br.com.consist.bean">
<class name="Produto" table="SE_PRODUTO">
<composite-id>
<key-many-to-one name="grupo" class="GrupoEmpresarial" column="SE14_MAT_GRU" />
<key-property name="codigo" type="string">
<column name="SE14_PRODUTO" sql-type="varchar" />
</key-property>
</composite-id>
<property name="descricaoProduto" type="string" column="SE14_DESCRIC" />
<property name="descricaoCompra" type="string" column="SE14_DES_COM" />
<property name="descricaoFaturamento" type="string" column="SE14_DES_FAT" />
<set name="produtosArmazem" table="SE_ESTOQ_ARMAZ" lazy="false" fetch="join">
<key >
<column name="SE22_MAT_GRU" />
<column name="SE22_PRODUTO" />
</key>
<many-to-many class="Armazem">
<column name="SE06_EMPRESA" />
<column name="SE06_MAT_GRU" />
<column name="SE06_ARMAZEM" />
</many-to-many>
</set>
</class>
</hibernate-mapping>