Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] GreenDAO Master/Detail

Olá Tiago, vc conseguiu fazer a "magia" apos sua customização?
Estou com a mesma dificuldade/dúvida.
Na verdade não estou sabendo como persistir minha lista, pois quando dou um cliente.getPedidos() ela esta null, mas isso é obvio pq eu não setei os pedidos, tipo cliente.setPedido(...) e não fiz isso pq meu greendao gera apenas o metodo get, o seu gerou o set?

Em quinta-feira, 14 de novembro de 2013 09h42min55s UTC-2, Tiago J. Grillo escreveu:
Felipe acho que falei besteira, ele faz a tal "magica" que eu quero sim.

Ontem a noite fiquei testando e estudando as classes que ele gera com mais calma.

Só achei que ele gera muita "porcaria", claro que isto talvez seja para mim que vou fazer algo mais simples.

Enfim, estou customizando o código que ele gera e fazendo alguns testes, quando chegar em uma conclusão 100%, eu compartilho o código para vocês avaliarem.


vlw


2013/11/14 Felipe Aron <felip...@gmail.com>
Agora entendi! :D

Se você usar insert(pedido) será obrigado a indicar o idCliente. Agora não me lembro se é necessário indicar o idCliente quando adicionado o pedido na lista de clientes e salvar o mesmo - cliente.getPedidos().add(pedido).

Vou dar uma verificada aqui como fiz ai volto pra postar meus resultados! :D


Em 13 de novembro de 2013 17:55, Tiago Grillo <tijg...@gmail.com> escreveu:

Deu sim Felipe e até eu consegui fazer balinha exatemente como mostrou.

o usar isto depois que achei confuso (errado).

Estou questionando mais o fato de eu ter que me preocupar em passar o idCliente qdo vou salvar um pedido.

E não simplesmente falar ...insert(pedido); e o greenDAO fazer todo o trabalho..

Entendeu? é isto mesmo, eu tenho que me preocupar com isto?



2013/11/13 Felipe Aron <felip...@gmail.com>
Fala ai Tiago blz?! 

Cara de início também fiquei confuso, mas depois que entendi como fazer a relação entre as classes ficou fácil. Seguinte:

ToOne (1:N) -> A partir do DETALHE [   ]

ToMany (N:1) -> A partir do MESTRE [   ]

Vamos a prática -- No teu caso 1 Cliente tem N pedidos (ToMany). 1 pedido pertence a apenas 1 cliente (ToOne).

CLIENTE

Entity cliente = schema.addEntity("Cliente");
...

PEDIDO

Entity pedido = schema.addEntity("Pedido");
    
Property idCliente = pedido.addLongProperty("idCliente").getProperty();

pedido.addToOne(cliente, idCliente);

ToMany toMany = cliente.addToMany(pedido, idCliente);

toMany.setName("Pedidos");

A partir dessa estrutura eu consigo a partir da instancia de cliente:

cliente.getPedidos()...

Deu pra entender? rs



Em 13 de novembro de 2013 16:15, Tiago Grillo <tijg...@gmail.com> escreveu:
Boa tarde,
     Estou tentando fazer com o GreenDAO o esquema de Mestre/Detalhe e não sei se estou errando em algo ou a ideia é esta mesma.

     Tenho a classe Cliente (mestre) e a classe Pedido (detalhe) 1:N

     O que eu desejo:
        List<Pedido> lPed = new ArrayList<Pedido>();
        lPed.add(new Pedido(null, 1d));
        lPed.add(new Pedido(null, 1d));
      
        Cliente c = new Cliente();
        c.setNome("teste1");
        c.setPedidos(lPed);
       
        Dao.getSession(this).insert(c);

    Ou seja, que o GreenDAO se encarre de persistir meus itens, de ver qual o codigo do cliente para a chave estrangeira..


    O que consegui:
        Cliente c = new Cliente();
        c.setNome("teste1");
       
        Dao.getSession(this).insert(c);
       
        List<Cliente> listC = Dao.getSession(this).getClienteDao().loadAll();
       
        for (Cliente c1 : listC) {
           
            Pedido p = new Pedido(null, 1d, c1.getId());
            Dao.getSession(this).getPedidoDao().insert(p);
        }
       
       
   Não me parece muito natual!?!?!

Obrigado

ps1: Gerei as classes pelo greeDAOGenerator
ps2: O projeto de teste meu esta anexo, caso alguma alma caridosa esteja disposta ver com mais detalhes.

--
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-...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
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-...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
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