Каков был бы разумный способ добавить DISTINCT
и/или GROUPBY
кому: ContentResolver
- основанные запросы. Прямо сейчас я должен создать пользовательский URI для каждого особого случая. Существует ли лучший путь? (Я все еще программа для 1,5 как наименьший общий знаменатель)
Поскольку никто не ответил, я просто расскажу, как я это решил. Обычно я бы создавал собственный URI для каждого случая и передавал критерии в параметре selection
. Затем внутри ContentProvider # query
я бы идентифицировал случай и построил необработанный запрос на основе имени таблицы и параметра выбора.
Вот быстрый пример:
switch (URI_MATCHER.match(uri)) {
case TYPES:
table = TYPES_TABLE;
break;
case TYPES_DISTINCT:
return db.rawQuery("SELECT DISTINCT type FROM types", null);
default:
throw new IllegalArgumentException("Unknown URI " + uri);
}
return db.query(table, null, selection, selectionArgs, null, null, null);