Room DB,将 ASC 或 DESC 作为参数传递

Nik*_*mbe 5 sqlite android android-room

我有一个房间数据库设置。并有以下查询(按原样工作正常):

@Query("SELECT * FROM " + TABLE_REPORT
        + " WHERE " + COLUMN_CLASS_ID + " =:classID"
        + " ORDER BY CASE :orderByColumnName"
        + " WHEN 'maths' THEN maths"
        + " WHEN 'physics' THEN physics"
        + " WHEN 'history' THEN history"
        + " END"
        + " DESC")
List<ResultEntity> getClassResult(long classID, String orderByColumnName); // , String orderBy);
Run Code Online (Sandbox Code Playgroud)

我想取消对最后一行的注释并在函数中包含orderBy参数并将“DESC”替换为“:orderBy”,这样我就可以按orderBy对列表进行排序,这将是 ASC 或 DESC。

我试着做我上面解释的。但它似乎不起作用。

显示的错误是:“ASC、BETWEEN、COLLATE、DESC、IN、LIMIT、逗号或分号,找到:orderBy”

我怎样才能让它工作?提前致谢。