姬長信(Redy)

android – 如何在运行时动态查询房间数据…


问题

是否有可能在运行时构造一个查询?

用例

@Query("SELECT * FROM playlist " +
        "WHERE playlist_title LIKE '% :playlistTitle %' " +
        "GROUP BY playlist_title " +
        "ORDER BY playlist_title " +
        "LIMIT :limit")
 List searchPlaylists(String playlistTitle, int limit);

限制部分是可选的.也就是说,它应该能够在有或没有限制的情况下执行相同的查询.

一个更复杂的用例

在前一种情况下,可以使用和不使用限制部分进行两个静态查询,并且每次都可以使用适当的一个.但有时我们可能不得不处理更复杂的情况,例如构建过滤器.

在这种情况下,与前面的示例不同,将有多个可选部分.对于书籍表,我们可能需要根据书籍所属的类别,作者姓名,价格范围,出版日期等进行过滤.使用这些部分的所有组合进行静态查询几乎是不可能的.