Pessoal o titulo não foi muito claro, mais a dúvida é a seguinte: tenho uma sessão onde salvo os itens de um orçamento: como se fosse uma compra onde tenho vários itens e tenho que salva-los na conta de um usuário no BD:
[quote=well]mas por exemplo: quanto temos um carrinho de compras com vários itens, e compramos ele salva todos os itens para sua conta?
essa seria minha ideia. [/quote]O que você poderia fazer é salvar com Cascade.
Você salvaria o objeto pedido e os itens seriam salvos automaticamente.
faz o orçamento ter uma lista de itens e vc faz um relacionamento um pra muitos no banco…
no hibernate/jpa vc faz:
@Entity
public class Item {
//...
@ManyToOne
Orcamento orcamento;
}
@Entity
public class Orcamento {
@OneToMany(mappedBy="orcamento")
List<Item> itens;
}
Fiz conforme a primeira postila do fj28 um relacionamento manytomany
troquei o nome da classe agora é venda e Não orçamento fiz um relacionamento ManyToMany
@ManyToMany
private List<Item> items = new ArrayList<Item>();
essa lista de itens contem produtos preço qtd igual a apostila nova, fiz baseado nela.
com esse relacionamento foi criado no banco a tabela venda com id e o usuario que realiza a compra, no meu caso o usuario logado, e criou uma tabela auxiliar venda_item com os campos venda_id e itens_id
e no vendasController
fiz assim
[code]@Restrito @Post@Path("/vendas")
public void adiciona(Venda venda){
venda.setItems(this.carrinho.getItens());//pega os itens do carrinho e salva na venda
dao.adiciona(venda);
result.redirectTo(VendasController.class).lista();
}[/code]
porem não esta funcionando; no console executa o seguinte HQL
Hibernate:
insert
into
Venda
(usuario_login)
values
(?)
Hibernate:
insert
into
Venda_Item
(Venda_id, items_id)
values
(?, ?)
Hibernate:
select
venda0_.id as id11_,
venda0_.usuario_login as usuario2_11_
from
Venda venda0_
Voce pode modelar assim. Tabela Cliente e Tabela orçamento, onde a tabela orcamento tera uma chave estrangeira apontando para o id da tabela cliente. Na hora de pegar o orçamento, basta fazer um join.