One-to-many para chave estrangeira composta

1 resposta
krycek

Tenho as seguintes classes:

Item        1xN       Qtd
--------                ---------------
pedido                 item (pedido, produto) (FK) (PK)
produto                laboratorio                   (FK) (PK)

Pelo hibernate to tentando fazer a relação item -> qtd da seguinte forma:

<hibernate-mapping>
    <class name="model.Item" table="item" schema="public">
        <composite-id>
            <key-many-to-one name="pedido" class="model.Pedido" column="pedido_id" />
            <key-many-to-one name="produto" class="model.Produto" column="produto_id" />
        </composite-id>

        <set name="qtds"  inverse="true" lazy="true" cascade="all">
            <key>
	            <column name="pedido_id" not-null="true" />
                <column name="produto_id" not-null="true" />
                
            </key>
            <one-to-many class="model.Qtd" />
        </set>
    </class>
</hibernate-mapping>

e o mapeamento no xml da classe Qtd tá assim:

<hibernate-mapping>
    <class name="model.Qtd" table="qtd" schema="public">
      <composite-id>
            <key-many-to-one name="item" class="model.Item">
            	<column name="pedido_id" />
            	<column name="produto_id" />
            </key-many-to-one>
            <key-many-to-one name="laboratorio" column="laboratorio_entidade_id" class="model.Laboratorio" />
        </composite-id>

    </class>
</hibernate-mapping>

Quando tento usar o getter do Item para “Qtds” ele vem vazio, não dá erro na carga nem em execução. Mas não retorna nada. Já verifiquei banco, dados, tudo. Não consigo fazer funcionar essa relação.

Uma relação com apenas uma coluna funciona perfeitamente, mas essa composta não tem jeito. No livro hibernate in action tem uma relação semelhante, unica diferença é que no meu banco a chave primária na tabela Qtd tem uma coluna a mais da chave estrangeira referenciada na tabela Item.

Se alguem poder dar uma luz do pq do problema, qq coisa… valeu galera.

1 Resposta

krycek

:frowning:

Criado 22 de novembro de 2006
Ultima resposta 29 de nov. de 2006
Respostas 1
Participantes 1