Hibernate, Jersey, Java | Qual a maneira correta de receber e persistir dados em tabelas com relacionamento Many to Many? - Fórum DevMedia
Qual a maneira correta de receber e persistir dados em tabelas com relacionamento Many to Many?
Hibernate Jersey Java JAVA EE
Olá, usando Hibernate e Jersey, qual a forma correta de persistir dados quando o relacionamento for Muitos para Muitos e na tabela extra que faz relacionamento ter atributos a mais?
Pedido, Produto e PedidoProduto. Na tabela PedidoProduto terá que ter outros atributos como "Quantidade, Preço".
Fala aí Antonio, tudo certo?
Então, neste caso de relacionamento ManyToMany eu costumo trabalhar com duas Collections, uma em cada classe do relacionamento, com a anotação @ManyToMany. Utilizando o Hibernate e a JPA com essa anotação nas duas classes, o próprio Hibernate se encarrega da criação da jointable, no seu caso a PedidoProduto. Não é necessário tem outros campos nessa terceira tabela porque a função dela é simplesmente armazenar a qual pedido determinado produto está atrelado, apenas isso. As informações de quantidade serão acessadas através da classe Pedido e as de preço na classe Produto.
Fala Paulo. Tudo certo e ai? Então Paulo na realidade o que acontece é o que eu citei acima. Por exemplo tenho a tabela produtos com os seus preços e tenho a tabela pedido que pode ter muitos produtos , se seguirmos a sua logica aconteceria o problema de que se eu mudar o valor produto, os pedidos que tiver os mesmo produtos terão alteração tbm, imagina que quando o pedido foi feito o produto x tem valor de R$10,00 ai depois de alguns dias teve um reajuste e no cadastro do produto foi atualizado para R$9,00 isso iria acarretar em discordâncias de dados, pois o pedidos que já foi lançado iria atualizar os valores. Então no meu ponto de vista tem que persistir o valor atual do produto e já tenho a solução para isso que é o seguinte: