我正在开发一个简单的小测验解决方案,在数据库中,问题和测验之间存在多对一的关系,因此单个测验可以分配多个问题。
要获得测验的每个问题,我只是简单地说:
Question.find(Question.class, "quiz = ?", String.valueOf(quiz.getId()));
有时候,我想知道有多少问题,我想我可以这样做:
Question.count(Question.class, "quiz = ?", String.valueOf(quiz.getId()));
不幸的是,与find()
不同,SugarRecord.count()
方法接受String
的数组,因此我必须将其称为:
Question.count(Question.class, "quiz = ?", new String[]{String.valueOf(quiz.getId())});
API中存在这种不一致的原因吗?
答案 0 :(得分:1)
原因是使用重载。有groupBy, orderBy
和limit
的方法。愚蠢,愚蠢,愚蠢。
public static <T> long count(Class<T> type);
public static <T> long count(Class<T> type, String whereClause, String[] whereArgs);
public static <T> long count(Class<T> type, String whereClause,
String[] whereArgs, String groupBy, String orderBy, String limit);
然而自己做:
public static <T> long countWhere(Class<T> type, String whereClause, String... whereArgs) {
return Question.count(type, whereClause, whereArgs);
}