To com um problema classico. Produto() Venda() Itemvenda()
pesquizei bastante e nao consegui encontrar a soluçao
eu to utilizando o derby como banco.
eu to utilizando o padrao DAO.
faço o cadastro dos produtos sem problemas.
tenho um array de itemvenda na venda!
tenho uma interface q alimenta esse array.
Mas nao sei como fazer no metodo DAOvenda.gravar(Venda venda) ele buscar cada itemVenda do array e
chamar o metodo DAOitemvenda.gravar(Itemvenda itemvenda) passando os itemvenda pra gravar no banco
obs.: to aprendendo o nome das coisas ainda, entao se der pra me ajudar da forma mais simples possivel eu agradeço.
[quote=Paloschi]To com um problema classico. Produto() Venda() Itemvenda()
pesquizei bastante e nao consegui encontrar a soluçao
eu to utilizando o derby como banco.
eu to utilizando o padrao DAO.
faço o cadastro dos produtos sem problemas.
tenho um array de itemvenda na venda!
tenho uma interface q alimenta esse array.
Mas nao sei como fazer no metodo DAOvenda.gravar(Venda venda) ele buscar cada itemVenda do array e
chamar o metodo DAOitemvenda.gravar(Itemvenda itemvenda) passando os itemvenda pra gravar no banco
obs.: to aprendendo o nome das coisas ainda, entao se der pra me ajudar da forma mais simples possivel eu agradeço.[/quote]
Oi!
Tu não sabe a parte de SQL, Java ou ambas?
Poste as duas tabelas (Venda, ItemVenda) e o seu código em Java (principalmente ambos os métodos citados por você).
Dessa forma, fica mais fácil de entender sua necessidade.
Abraços.
veja bem eu sei SQL, o meu problema eh como fazer pra percorrer o array de itemvenda q tem dentro da classe venda,
nao sei se fui claro, minha tabla venda tem um array de itemvenda dentro, eu quero percorrer ele e ir gravando no banco os itemvenda
eu sei gravar no banco eu soh n sei percorrer o array pra chamar o metodo gravar pra gravar cada itemvenda do array
public class Venda implements Serializable{
private static final long serialVersionUID = 1L;
private long codigo;
private List<Itemvenda> Itemvenda = new ArrayList<Itemvenda>();
quero que quando for chamar o metodo DAOvenda.gravar(venda) ele jah percorra o array
e pra cada itemvenda do array ele chame o metodo DAOitemvenda.gravar(itemvenda)
Está utilizando o framework hibernate ou SQL nativo?
Bom, ao que eu entendo é SQL nativo, certo?
Se for, faça tudo no DAOvenda.gravar(venda), se dentro de venda você já tem a lista de itens, basta dar um get nessa lista, efetuar um laço de repetição e para cada item, você persiste o item da venda e o respectivo ID da venda (para dizer algo assim “este item pertence a venda x”).
Só antes de persistir o ItemVenda, deves garantir que a venda foi persistida com sucesso, afinal, você não pode persistir um item de venda sem que o mesmo pertença a uma venda, certo? Dentro do método DAOvenda.gravar(venda), você pode ainda verificar se o ID já existe, se existir, você apenas persiste os itens da venda.
Percorrer uma lista você sabe, perfeito?
Abraços.
P.s: você não tento fazer os métodos?
ah tah humm muito bem ai eu elimino o DAOitemvenda hum legal vo testar aki
ah eu n sei percorrer a lista direit n, to apanhando pra caramba medade da minha dificuldade ta nisso
utiliza o for each
for (Object o : listaObjetos)
para percorrer a lista
[quote=igor_henrique]utiliza o for each
for (Object o : listaObjetos)
para percorrer a lista[/quote]
Exatamente com o Igor disse, para o seu caso em questão, seria isso aqui:
for (Itemvenda item : venda.getItemVenda()) {
// persiste o item no seu banco de dados
// exemplo de manipulação do objeto
item.getCodigo();
}
Abraços.
eu amo vcs mew uaHeuhaeaue funciono vlw ae! fico assim ó
for (Itemvenda o : entidade.getItemvenda()){
StringBuilder sql2 = new StringBuilder();
sql2.append("INSERT INTO TB_ITEMVENDA(ITV_CODPRODUTO, ITV_CODVENDA, ITV_VLRUNITARIO," +
"ITV_QUANTIDADE) VALUES(");
sql2.append(o.getCodproduto()+",");
sql2.append(entidade.getCodigo()+",");
sql2.append(o.getVlrunitario()+",");
sql2.append(o.getQuantidade()+")");
try {
pstm = conn.createStatement();
pstm.execute(sql2.toString());
} catch (SQLException f) {
// TODO Auto-generated catch block
f.printStackTrace();
}
como finaliza o topico msm?
edita seu primeiro post e coloca [RESOLVIDO] no título, falow