Hibernate não salva direito

2 respostas
marcioa1

Olá.

Tentarei ser breve.

Tenho duas clases : Fabricante e Produto ( um fabricante tem vários produtos e um produto pertence a um único fabricante ).

Fiz as classes direitinho ( getter , setter e construtor padrão ), mas acredito que meus mapeamentos ( arquivos hbm ) estejam errados. Vou resumí-los :

Produto

<class name=“Produto” table=“produto”>

<id name="id"

column=“id"

type=“long"

unsaved-value=”-1”>

<generator class=“identity”/>

</id>

<one-to-one  name="fabricante"

class="Fabricante"

constrained=“true”/>

</class>
Fabricante

<class name=“Fabricante” table=“fabricante”>

<id name="id"

column=“id"

type=“long"

unsaved-value=”-1”>

<generator class=“identity”/>

</id>

<property name="nome"

column="nome"

type="string"

length="50"

not-null=“true”/>

</class>

Ao buscar um produto já cadastrado, ele traz a classe Fabricante corretamente montada, mas ao inserir um produto, o campo idFabricante, que na tabela de produto identifica o fabricante, aparece com o valor 0

O que devo fazer ??? Devo mapear o campo idFabricante ?? Ele é uma coluna da tabela produto, mas não uma propriedade da classe Produto. A Classe produto tem uma propriedade do tipo Fabricante.

Agradeço muitíssimo se alguém puder me ajudar.

Márcio

2 Respostas

marcioa1

Eu falei na primeira mensagem que a busca de um produto traz o fabricante corretamente. Estava errado, ele não traz o fabricante corretamente.

Obrigado.

ricardolecheta

seu mapeamento está errado, nao é one-to-one .

Fabricante e Produto ( um fabricante tem vários produtos e um produto pertence a um único fabricante ).

no Fabricante precisa ter um “one-to-many” para Produto
no Produto vc coloca um “many-to-one” para Fabricante.

Consulte a documentação do hibernate, procure por “Chapter 9. Parent/Child Relationships”, ou pesquise no forum que vc vai encontrar exemplos.

Criado 16 de março de 2004
Ultima resposta 16 de mar. de 2004
Respostas 2
Participantes 2