Reputation: 27
List<HoraireDb> horaires_reels = null;
try {
Dao<HoraireDb, Integer> dao = App.getHelper().getHoraireDao();
QueryBuilder<HoraireDb, Integer> builder = dao.queryBuilder();
Where where = builder.where();
where.eq("isprevis", false);
where.and();
where.eq("idactivite", Param.getIdActivite(App.getContext()));
where.and();
where.eq("jour",moment);
where.and();
where.isNotNull("debut");
where.and();
where.isNotNull("fin");
where.and();
where.ne("etat", "D");
where.and();
where.isNull("idabsence");
where.and();
where.lt("fin",moment);
horaires_reels = dao.query(builder.prepare());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
I want to return an int
just the number of rows, because returning a list takes too much time. I want to know if there's any way to use countof()
for in my code?
I found in stackoverflow this answer but didn't work for me :
int numRows = dao.queryBuilder().where().eq("name", "Joe Smith").countOf();
Upvotes: 1
Views: 2686
Reputation: 46
dao = getHelper().getUsuarioDao();
QueryBuilder queryBuilder = dao.queryBuilder();
queryBuilder.setCountOf(true);
queryBuilder.setWhere(queryBuilder.where().eq("name", "Joe Smith" ));
Long usuarios = dao.countOf(queryBuilder.prepare());
Log.d(TAG, "How much name by "Joe Smith" are:" + usuarios);
for me this code is ok, I used in a project that is development
I hope that is help.
Upvotes: 3