Quando vc adcionar o fornecedor ao banco, o banco tera o trabalho de gerar o ID, e o hibernate vai ajustar o valor do campo no objeto, assim que vc criar o fornecedor…
para isso no banco o campo deve id_fornecedor deve estar auto_incrase
eu fiz um formulário para preencher campos da tabela fornecedor e produto.
Minha intenção é que na hora que for salvar, ele salve o fornecedor atribua o valor da PK na FK que está na tabela produto e salve o produto. É possivel?
public void salvaProduto(Produto produto){
produto.setFornecedor(this);
produtos.add(produto);
}
e saiba que é preciso salvar o fornecedor antes!, caso contrario, não havera a chave primaria para salvar os produtos
Obs… o nome salvaProduto não esta legal… visto que o produto nao esta sendo salvo, e sim adcinoado…
Obs2… nao sei como vc implementou o service.salvar(fornecedor) mais neste caso, vc deve salvar o fornecedor e depois percorrer todos os produtos e salvar cada produto, isso para a forma como vc esta abordando
Fiz esta alteração que foi dita mas aparece um outro erro:
“mappedBy reference an unknown target entity property: entidade.Produto.fornecedor in entidade.Fornecedor.produtos”;
Não imagino o que pode ser, vc pode me ajudar com este erro?[/quote]
o poder de um “s”
“mappedBy reference an unknown target entity property: entidade.Produto.fornecedor in entidade.Fornecedor.produtos”;
//...
public class Fornecedor implements Serializable{
//...
//aqui vc colocou fornecedor , sem estar no plural
@OneToMany(mappedBy = "fornecedor", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Collection<Produto> produtos = new ArrayList<Produto>();
//...
}
//...
public class Produto implements Serializable{
//...
private Fornecedor fornecedores; // <== aki ta escrito fornecedores (no plural) tem um "s" a mais que no mappedBy
//como não são fornecedores e sim fornecedor, acredito que tirar o "s" daqui seja a melhor solução
//...
}
Ok, corrigi esta linha e salvou, mas salvou o fornecedor e o produto sem nenhum vínculo, ou seja, ele não atribuiu o id do fornecedor na chave estrangeira.
Vc têm alguma idéia de onde esteja meu erro?
Muito obrigado pela atenção!!!
[quote=Renato_natos]Puts…Consegui finalmente…
Muito obrigado pela sua ajuda!!!
Tive que corrigir aquele ‘s’ e incluir uma linha de comando
vlw.[/quote]
sempre bom editar a msg principal, e colocar um [RESOLVIDO] depois do titulo, pra o pessoal saber que não precisa + de ajuda para este problema, e pra caso alguem pesquise sobre o mesmo problema, ao ver o titulo saber que o seu problema esta resolvido ^^