当前位置: 首页 > 知识库问答 >
问题:

Android房间rawquery问题

张献
2023-03-14

我想实现Android房间持久性。这是我的DAO接口。

@Dao
interface FoodDao {

    /**
     * Returns all data in table for Paging
     *
     * @param query a dynamic SQL query
     */
    @RawQuery
    fun getAll(query: SupportSQLiteQuery): DataSource.Factory<Int, Food>
}

出于某种原因,我有以下编译错误:

错误:可观察的查询返回类型(LiveData、Flowable、DataSource、DataSourceFactory等)只能与直接或间接(例如通过@关系)访问至少一个表的SELECT查询一起使用。对于@RawQuery,您应该通过observedEntities字段指定要观察的表的列表。公开摘要androidx。分页。数据源。工厂

共有1个答案

勾海超
2023-03-14

您必须指定观察到的实体:

@RawQuery(观察值=[食物::类])

查看更多:https://developer.android.com/reference/androidx/room/RawQuery#observedEntities()

 类似资料:
  • 下面的奇怪问题是代码示例,无法创建复合主键 破例 不确定哪里的问题是一切看起来都很好,但当我删除主键注释,这个例外不会出现,对于语法,我遵循官方Android留档。也没有给出有关问题位置的任何详细信息。

  • 我开始使用最新的androidx。支持io的文件室版本。reactivex返回类型。 简单dao类 生成用户dao\u Impl。java出现错误 错误:从内部类访问局部变量用户;需要宣布为最终 突出显示的字段在此方法中 的确,在java中应该将声明为final,但它是由类生成的。有人遇到过这个吗?

  • 我在房间使用关系中添加了一对多关系。我引用这篇文章是为了编写以下房间关系代码。 这篇文章讲述了如何从数据库中读取值,但将实体存储到数据库中会导致用户ID为空,这意味着这两个表之间没有关系。 我不确定在具有用户ID值的情况下,将用户和宠物列表插入数据库的理想方法是什么。 1)用户实体: 2) 宠物实体: 3)用户带宠物POJO: 现在,为了从DB中获取记录,我们使用以下DAO: 编辑 我已创建此问题

  • 错误:查询有问题:[SQLITE_ERROR]SQL错误或缺少数据库(没有这样的表:任务) 显示了这个错误,我怎么可能修复它? 我正在学习这个教程

  • 我知道我不能在查询中使用删除(顺便说一句,这很遗憾),我会得到以下错误: 但是我不能使用Delete(其中…xxx)那么如何通过参数删除特定行?

  • Android的Room持久性库优雅地包含了适用于对象或集合的@Insert和@Update注释。但是,我有一个用例(包含模型的推送通知),它需要UPSERT,因为数据库中可能存在数据,也可能不存在数据。 Sqlite本机不具有up,在这个SO问题中描述了解决方法。鉴于那里的解决方案,如何将它们应用于Room? 更具体地说,如何在房间中实现插入或更新,而不破坏任何外键约束?使用insert wit