Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] ORM greenDao - PK notNull autoIncrement

Então, to estudando ORM para Android. Achei interessante o greenDAO, mas estou no básico ainda, estudando pra ver até onde vai.


Vou dar uma estudada no HADI também, pra ver seu funcionamento. :)

O meu "medo" é quando dizem que é bom pra "projetos simples". rssrs

Saudade do FluentNHibernate do .NET, hehe.

Em 31 de agosto de 2012 14:46, Pedro Subutzki <Pepeu> <falecompepeu@gmail.com> escreveu:
Bom... ainda falando sobre ORMs, eu já testei vários e não gostei do GreenDAO! :)

Um projeto que gostei muito foi o Aliendroid-ActiveRecord (https://github.com/marloncarvalho/aliendroid-activerecord) feito pelo Marlon Carvalho. Testei o projeto e funcionou muito bem, porém só achei um problema nele. O Aliendroid-ActiveRecord não funciona em classes que extendem IntentServices ou Services. :(
Foi por isso que eu começei a trabalhar com o HADI.

De qualquer forma, teste vários ORMs e veja qual se adapta melhor a sua necessidade! :)


--
Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi



Em 31 de agosto de 2012 14:37, Pedro Subutzki <Pepeu> <falecompepeu@gmail.com> escreveu:

Então... no caso, o HADI funciona de forma diferente.
Ele usa reflection nas classes (modelos) procurando pelos annotations, e apesar de usar reflection ele tem um bom desempenho.

No HADI se vc acrescentar mais uma propriedade na sua classe, vc não precisa RE-gerar o modelo (como o caso do GreenDAO), ou sair varrendo o codigo mudando seus DAOs (caso do pessoal que não usa ORM). Com o HADI não há essa necessidade! :)

Só reforço que ele não é uma bala de prata e não vai resolver todos os problemas da galaxia, mas pra projetos simples ele supre 100%.
Ganhamos muito tempo no desenvolvimento aqui!

--
Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi



Em 31 de agosto de 2012 14:28, Felipe Aron <felipearon@gmail.com> escreveu:

Isso mesmo, eu crio um Schema e ele gera as classes pra mim.

Em 31 de agosto de 2012 14:03, Pedro Subutzki <Pepeu> <falecompepeu@gmail.com> escreveu:

Sim... No HADI ele cria o DB automaticamente (vc escolhe o nome).
Com relação a chave, ela depende de vc colocar o annotation na propriedade.
Segue exemplo de uma classe:

import com.the9tcat.hadi.annotation.Column;
import com.the9tcat.hadi.annotation.Table;

@Table(name="Livro")
public class Book {

    @Column(autoincrement=true)
    public int id;

    @Column(name="sn")
    public String sn;

    @Column(name = "Titulo")
    public String name;
}

Se me lembro bem o GreenDAO ele gera as classes baseado num Schema, né?!


--
Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi



Em 31 de agosto de 2012 13:05, Felipe Aron <felipearon@gmail.com> escreveu:

Pedro, uma pergunta - esse HADI cria o db pra você automaticamente?

Se cria, ele cria o campo PK autoincrement NULL?

Em 31 de agosto de 2012 11:48, Pedro Subutzki <Pepeu> <falecompepeu@gmail.com> escreveu:

Olá Felipe,
Infelizmente não posso ajudar sobre o GreenDAO, mas se quiser testar um outro ORM, teste o HADI:
https://github.com/PepeuCps/Hadi

Sobre ele, poderei responder as suas dúvidas.
Qualquer coisa me manda um e-mail que te envio o ultimo JAR do projeto. :)


--
Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi



Em 31 de agosto de 2012 09:07, Felipe Aron <felipearon@gmail.com> escreveu:

Galera, to começando a estudar o ORM greenDao e já pintou uma dúvida que não encontrei na documentação.

Tenho o seguinte schema:

        public static void addPessoa(Schema schema) {
Entity pessoa = schema.addEntity("Pessoa");
pessoa.addIdProperty()
.autoincrement()
.notNull();
pessoa.addStringProperty("nome")
.notNull();
}

Na documentação cria um IdProperty() sem "notNull". Acho estranho uma PK não ser "notNull" por isso eu adicionei.

Porém agora com "notNull" como fica a inserção? Se fizer assim dá erro de código:

pessoaDao.insert(new Pessoa(null, "Felipe"));

Porém se ficar assim, ele grava, mas não incrementa automático, incluindo o "id" indicado no construtor:

pessoaDao.insert(new Pessoa(0, "Felipe"));

Como resolver isso?

--
Analista-Programador







--
Analista-Programador







--
Analista-Programador









--
Analista-Programador

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

0 comentários:

Postar um comentário