Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] GreenDAO - persistir lista de "filhos"

Eu sigo a seguinte "regra" para salvar o pedido:

Tenho 2 objetos:

Pedido pedido = new Pedido();
List<PedidoItem> Itens = new ArrayList<PedidoItem>();

Ao salvar, eu preencho os dados do pedido e populo os itens de acordo com a seleção do usuário.

1) Salvo o pedido --  long id = ...session().getPedidoDao().insert(pedido);

Inserindo o pedido já tenho id do mesmo.

2) Agora só alimentar o idPedido no filho e salva-lo:

for (PedidoItem item : lItens) item.setIdPedido(id);

...session().getPedidoItemDao().insertinTx(lItens);

Se carregar o pai novamente os filhos estarão lá.

O greenDao apesar de possuir relações master/detail ele trata cada tabela/classe de forma separada, e relações sempre trata apenas como leitura. O que havia dito no email anterior realmente está errado.



Em 9 de janeiro de 2014 13:57, Marcela <marcelaeloisa@gmail.com> escreveu:
Ola Felipe,
mesmo alterando conforme sua sugestão cai no mesmo erro, pois ao passar pelo getItens() da classe pedido ele continua nulo e a exceção eh lancada:

 public List<Item> getItens() {
       
if (itens == null) {
           
if (daoSession == null) {

               
throw new DaoException("Entity is detached from DAO context");
           
}
...





Em quinta-feira, 9 de janeiro de 2014 13h36min55s UTC-2, Felipe Aron escreveu:
Marcela não existe SET para lista "filho", porém existe o método addAll() no GET

Exemplo:

List<PedidoItem> lItens = new ArrayList<PedidoItem>();
pedido.getItens().addAll(lItens);

Lembrando que ao salvar no DB, é preciso salvar tanto o pai quanto filho. Somente um Insert() no pai não incluirá os filhos.


Em 9 de janeiro de 2014 11:25, Marcela <marcel...@gmail.com> escreveu:
Olá Pessoal,
estou com dificuldade para persistir uma lista de filhos no objeto pai, quando mando inserir o pai.getListaFilhos() esta nullo, porem o greendao nao me gerou o metodo
pai.setListaFilhos(...), como que a magia acontece? Em que momento o pai recebe a lista de filhos?

filho.setNome("Ana");
filhos
.add(filho);
...

pai
.setNome("Jose");
pai
.setFilho(filho);
...

/*antes de fazer o insert, segundo a API (http://greendao-orm.com/documentation/relations/), devo fazer um get da Lista: 1. Get the to-many Java List */

List filhos = pai.getFilhos();

/* mas ao fazer o getFilhos() cai no erro: */

throw new DaoException("Entity is detached from DAO context");




Obrigada


--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.



--
سمووحخ ̷̴̐ خ ̷̴̐ خ ̷̴̐ خ امارتيخ ̷̴̐ خ
Analista-Programador

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



--
سمووحخ ̷̴̐ خ ̷̴̐ خ ̷̴̐ خ امارتيخ ̷̴̐ خ
Analista-Programador

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário