有没有办法动态查询数据库
Is there a way to dynamically query the database
我们想为房间数据库构建一个过滤器,其中过滤器选项由用户选择。
即
我们有一个带有字段(id、名称、日期、类型)的实体
用户可以按 and/or 之间的日期过滤列表 name contain text and/or type equals something
有没有办法在房间里做到这一点?
很抱歉,目前无法以您想要的方式实现。
我已经通过db.query(query, values)
方法做到了。在运行时生成您的查询字符串(使用占位符 '?'
),并传递一组运行时生成的值。请注意,这将 return 一个 Cursor
,而不是您想要的特定对象的实例,因此您必须定义一个方法来将 Cursor
映射到 POJO。
我附上了一些链接到我的 Cursor2Pojo Mapper 和一个实现它的项目。请随意使用它,因为它应该以某种优雅的方式解决您的问题。它支持列表和单个实例 returns,尽管需要您向 class 添加更多注释(房间注释是 class 绑定的,因此您无法在运行时通过反射获取它们)
我们想为房间数据库构建一个过滤器,其中过滤器选项由用户选择。
即 我们有一个带有字段(id、名称、日期、类型)的实体 用户可以按 and/or 之间的日期过滤列表 name contain text and/or type equals something
有没有办法在房间里做到这一点?
很抱歉,目前无法以您想要的方式实现。
我已经通过db.query(query, values)
方法做到了。在运行时生成您的查询字符串(使用占位符 '?'
),并传递一组运行时生成的值。请注意,这将 return 一个 Cursor
,而不是您想要的特定对象的实例,因此您必须定义一个方法来将 Cursor
映射到 POJO。
我附上了一些链接到我的 Cursor2Pojo Mapper 和一个实现它的项目。请随意使用它,因为它应该以某种优雅的方式解决您的问题。它支持列表和单个实例 returns,尽管需要您向 class 添加更多注释(房间注释是 class 绑定的,因此您无法在运行时通过反射获取它们)