如何在 ormlite 中使用计数

How to use count in ormlite

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();
}

我只想 return 一个 int 行数,因为 return 列表需要太多时间。我想知道是否有任何方法可以在我的代码中使用 countof() for?

我在 Whosebug 中找到了这个答案,但对我不起作用:

int numRows = dao.queryBuilder().where().eq("name", "Joe Smith").countOf();
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);

对我来说这段代码还可以,我在一个正在开发的项目中使用过

希望对您有所帮助。