Galera, suponhamos que eu tenha as seguintes tabelas: cliente(id, nome), produto(id, descricao, preco), pedido(idPedido, idCliente, total), itens_pedido(idPedido, idProduto, quantidade).
Estou me perdendo um pouco para criar as classes. Alguém poderia me indicar a melhor forma de montar essas classes. A minha idéia principal seria criar como mostra o seguinte, avaliem se a idéia está muito errada fazendo o favor, e a minha principal dúvida é onde colocar a “quantidade” da tabela itens_pedido.
Aproveitando vai outra perguntinha, tem como eu mapear certinho isso com o hibernate.(óbvio q deve ter, mas como?)
Você pode criar uma classe para mapear essa tabela de relacionamento N para N (ItensPedidos) e mapear como relacionamentos Itens 1 para N -> ItensPedidos -> N para 1 Pedidos
Ou também pode utilizar a anotação @JoinTable.
Esse link é do Hibernate Annotations, cuidado que algumas anotações realmente só funcionam para o Hibernate, se um dia for usar JPA puro (EntityManager), algumas anotações podem não funcionar.
Informei esse link porque apesar de haver essas exceções gosto muito nas documentações do Hibernate.
rmarin
Coloque a quantidade em uma nova entidade (classe), que terá um produto e uma quantidade.
Existem duas formas de fazer o mapeamento com hibernate, através de xml e por anotações. :thumbup:
sergiotaborda
quanto à quantidade a solução é a class Item , ItemPedido mas especificamente.
Mas o seu codigo mostra outros “erros”
Humm… tudo bem que vc quer saber os pedidos do cliente. vc quer fazer cliente.getPedidos(). Mas isso não implica em ter uma lista de pedidos na sua classe cliente. Até porque os pedidos vão sendo adicionados
depois que vc faz a leitura. Ou seja, vc tem que refazer a query que trás os pedidos. Enfim, vc precisa de um método getPedidos() mas não de um atributo pedidos.
O mesmo para pedidos por produto
classCliente{privateLongid;privateStringnome;// getters e setters publicList<Pedidos>getPedidos(){// List implica em ordem. a padrão será a data do pedidoreturnQuery.getPedidosParaClientePorData(this);// Query é apenas para explicar a ideia. //O ponto é que neste método vc deve pesquisar quais são os pedidos deste cliente.}// outro exemplo lista de produtos que o cliente ja pediupublicList<Produtos>getProdutosPedidos(){returnQuery.getProdutosPedidosPorCliente(this);// valem os mesmos comentários sobre Query que acima}}
joseinfo
vlw galera, é q tinha pensando que um classe tipo ItensPedido não poderia existir em OO.