Relacionamento Hibernate

13 respostas
C

.

13 Respostas

Rodrigo_Sasaki

Tem um tutorial, simples e direto, que é do blog do jakefrog

JPA Consultas e Dicas

Mas sinceramente se você está começando com Hibernate eu sugiro que dê uma lida a respeito, veja um pouco da documentação, não saia fazendo sem saber quem é quem ou o que é o que. Esse tutorial pode ser um bom começo.

asandrob

Anotações!!!

NotaFiscal{   
          private int id;  
          private int numeroDaNota;  
          @OneToMany          
          private List<Produto> listaDeProdutos;  
}
asandrob

Anotações!!!

NotaFiscal{   
          private int id;  
          private int numeroDaNota;  
          @OneToMany          
          private List<Produto> listaDeProdutos;  
}
C

mas não seria ManyToMany?

pq um produto pode estar em várias notas fiscais e uma nota fiscal pode ter vários produtos

asandrob

Eu não relacionaria Produto e NotaFiscal, pois teóricamente voce pode ter mais coisas com produtos, como por exemplo movimentação do estoque.
Imagina de for colocar tudo em Produto!!!

Produto {   
          private int id;  
          private String Nome;  
          private double valor;  
          private List<NotaFiscal> listaDeNotas;
          private List<MovEstoque> listaDeMovimentos;
}
Rodrigo_Sasaki

Mas você não precisa ter uma referência de NotaFiscal em Produto pra realizar o relacionamento ManyToMany.class NotaFiscal{ @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY) @JoinTable(name = "NOTAFISCALPRODUTOS", schema = "BD", joinColumns = { @JoinColumn(name = "IDPRODUTO", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "IDNOTAFISCAL", nullable = false, updatable = false) }) private List<Produto> produtos; }

C

deram a luz… vlw msm!!

asandrob

Perfeito!!!
Mas acabou de criar um nova tabela do teu banco. NOTAFISCALPRODUTOS
Fazendo o mesmo com as movimentações do estoque. MOVIMENTACAOPRODUTOS.

Sei lá, eu não faço assim.

Rodrigo_Sasaki

asandrob:
Perfeito!!!
Mas acabou de criar um nova tabela do teu banco. NOTAFISCALPRODUTOS
Fazendo o mesmo com as movimentações do estoque. MOVIMENTACAOPRODUTOS.

Sei lá, eu não faço assim.

Como você faz um relacionamento N-N ?

asandrob

Grande Rodrigo, faço exatamente como tu sugeriu…

Mas no caso de notas e produtos.
Eu entendo que notas tem muitos itens e cada item da nota tem somente um produto.
Então nota e produtos estão relacionados através de itens.
Produtos tem os dados dele, como codigo, descrição, unidade, etc.
Item tem os dados de vlr unitário, quantidade, etc.
E nota, fornecedor, númeronf, etc.

Sempre que possível eu desvio de um ManyToMany. Questão de opção.

Rodrigo_Sasaki

asandrob:
Grande Rodrigo, faço exatamente como tu sugeriu…

Mas no caso de notas e produtos.
Eu entendo que notas tem muitos itens e cada item da nota tem somente um produto.
Então nota e produtos estão relacionados através de itens.
Produtos tem os dados dele, como codigo, descrição, unidade, etc.
Item tem os dados de vlr unitário, quantidade, etc.
E nota, fornecedor, númeronf, etc.

Sempre que possível eu desvio de um ManyToMany. Questão de opção.


Muito bom, é… eu faço igual hehehehe :slight_smile: ficou boa sua colocação, aí o autor do tópico vê que tem mais de uma saída pro problema dele.

C

vlw galeraaaa

C

agora deu esse erro

java.sql.BatchUpdateException: Duplicate entry ‘1’ for key ‘itens_id’

alguem jah viu?

Criado 7 de junho de 2012
Ultima resposta 7 de jun. de 2012
Respostas 13
Participantes 3