Я пытаюсь создать следующий запрос, используя SupportSQLiteQueryBuilder
:
SELECT * FROM tablename WHERE favorite=1 ORDER BY col1
Я использовал следующий код для создания этого запроса:
public static SupportSQLiteQuery getSortedQuery(String sortByColname, boolean fav){
SupportSQLiteQueryBuilder builder=
SupportSQLiteQueryBuilder
.builder(DbUtils.Names.TABLE_NAME)
.columns(new String[]{Names.COL1,Names.COL2,Names.COL3,Names.COL4,Names.COL5,Names.COL_FAVORITE})
.orderBy(sortByColname) ;
if(fav){
builder.selection(Names.COL_FAVORITE,new String[]{"1"} );
}
SupportSQLiteQuery query= builder.create();
//Log.e("DB_UTILS", "getSortedQuery:query="+query.getSql());
return query;
}
Но при проверке модульного теста я обнаружил, что ниже приведен SQL-запрос, который генерирует этот метод:
SELECT col1,col2,col3,col4,col5 favorite FROM tablename WHERE favorite ORDER BY col1
Почему Аргументация не попадает в это утверждение? почему только favourite
сгенерировано и favourite=1
?
Есть ли способ сгенерировать *
в запросе? писать все названия вместо *
больно