Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] ORMLite - Pegar somente um Objeto na query.

2015-01-03 10:14 GMT-03:00 Ricardo Cardoso <rick.duk@gmail.com>:
Como faço para trazer somente um objeto com o ORMLite. Nos metodos que eu tenho ele traz tudo em List por exemplo:

List<Objeto> ObjetoList = ObjectoDao.queryForEq("id", 1);

Amigão, nunca usei ORMLite, tenho lido um pouco a documentação dele pois me pareceu o que mais se aproxima do Hibernate. Porém, como ele é um framework bastante completo, logo abaixo te passo um link com uma resposta que encontrei no Stack Overflow.
 
E mesmo nas querys com Where que são mais especificas, tenho que ficar criando Listas por exemplo:

 QueryBuilder<Objecto, Long> qb = ObjectoDao.queryBuilder();
            Where where = qb.where();
            where.eq("campo", "valor");

            where.and();

            where.eq("campo", id);
            PreparedQuery<Trabalhador> preparedQuery = qb.prepare();

            List<Objecto> objetoList = ObjectoDao.query(preparedQuery);

Então, ai tenho que ficar criando for, colocando o tipo assim:

for (int i = 0; i < objetoList.size(); i++){
 objetoList.get(i).setPropriedade(Valor);
}

Realmente é penoso fazer dessa forma.
 
Sendo que se eu trouxesse somente um objeto ao invés da lista, nem precisaria do "for" para essas coisas. E também estou enfrentando um pouco de dificuldade de indices de propriedade.

Alguém pode ajudar?

Não sei se é o que você procura, e não testei pq ainda não tirei um tempo para preparar um ambiente de testes com ORMLite, no entanto, dê uma olhada na primeira resposta dessa thread:


  1. You could use a queryForFirst if you know your limit(1) will return a single result.

    qBuilder.orderby("my_field_column_name", false);  qBuilder.limit(1L);  MyEntity maxEntity = myEntityDao.queryForFirst(qBuilder.prepare());
Ou seja, se não for exatamente o que você está procurando, está bem próximo disso, pois:


queryForFirst

T queryForFirst(PreparedQuery<T> preparedQuery)                  throws SQLException
 Query for and return the first item in the object table which matches the PreparedQuery . See queryBuilder() for more information. This can be used to return the object that matches a single unique column. You should use queryForId(Object) if you want to query for the id column.

Parameters:
preparedQuery - Query used to match the objects in the database.
Returns:
The first object that matches the query.
Throws:
SQLException - on any SQL problems.

--
Silvio Clécio
My public projects - github.com/silvioprog

--
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/d/optout.

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

0 comentários:

Postar um comentário