Pois é galera… estou na luta com os relacionamentos aki…
Vou explicar brevemente o que tenho que relacionar…
por exemplo: tenho uma tabela para persistir os itens (Pk IDITEM) do estoque, uma para persistir os produtos (Pk IDPRODUTO) (note que faço distinção… produto é composto por um ou mais itens) e a outra para guardar a composição desses produtos… dessa forma estou quebrando o relacionamento n:n em duas 1:n n:1. Para isso construí os mapeamentos da seguinte forma:
Produto:
[code]
<id name="IDPRODUTO">
<generator class="increment"></generator>
</id>
<property name="DESCRICAO"></property>
<property name="PRECOCUSTO"></property>
<property name="PRECOVENDA"></property>
<property name="CODBARRAS"></property>
<property name="UNIDADE"></property>
<property name="PESO"></property>
<property name="DATACAD"></property>
<property name="SITUACAO"></property>
<many-to-one name="CATEGORIA"
class="CATEGORIA"
column="IDCATEGORIA">
</many-to-one>
<set name="itens" table="COMPOSICAO">
<key column="IDPRODUTO"></key>
<many-to-many class="ITEM"
column="IDITEM">
</many-to-many>
</set>
[/code]
Item:
[code]
<id name="IDITEM">
<generator class="increment"></generator>
</id>
<property name="DESCRICAO"></property>
<property name="PRECOCUSTO"></property>
<property name="QUANTIDADE"></property>
<property name="ESTOQUEMIN"></property>
<set name="produtos" table="COMPOSICAO" inverse="true">
<key column="IDITEM"></key>
<many-to-many class="PRODUTO"
column="IDPRODUTO">
</many-to-many>
</set>
[/code]
e finalmente o mapeamento da composição:
Composicao:
<hibernate-mapping>
<class name = "COMPOSICAO">
<composite-id name="ID" class="IDCOMPOSICAO">
<key-many-to-one class="ITEM" name="IDITEM"></key-many-to-one>
<key-many-to-one class="PRODUTO" name="IDPRODUTO"></key-many-to-one>
</composite-id>
<property name="quantidade"></property>
</class>
</hibernate-mapping>
para as classes a única diferença para o que estou acostumado é que criei a classe IDCOMPOSICAO para indicar a chave desse relacionamento…
----agora o problema:
suponha que ainda não tenha nenhum registro na tabela composição e alguns produtos e itens cadastrados…
ao tentar inserir um novo registro com os identificadores de PRODUTO E ITEM diferentes ele não aceita… só aceita assim:
ex1.
PRODUTO: 1
ITEM: 1
QUANTIDADE: 10
ex2. se eu tentar na primeira vez inserir
PRODUTO: 1
ITEM: 2
QUANTIDADE: 10
ele dá erro… mas depois que eu inseri o ex1 ele deixa inserir qualquer outro…
o que eu faço…!!! SOCORRO!!!