Hibernate não salva direito

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

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.

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

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

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.