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

Android房间@删除参数

严令秋
2023-03-14

我知道我不能在查询中使用删除(顺便说一句,这很遗憾),我会得到以下错误:

<i>Error:error: Observable query return type (LiveData, Flowable etc) can only be used with SELECT queries that directly or indirectly (via @Relation, for example) access at least one table.</i>

但是我不能使用Delete(其中…xxx)那么如何通过参数删除特定行?

共有3个答案

柯立果
2023-03-14

您可以使用以下方法按ID删除

@Query("DELETE FROM yourDatabaseTable WHERE id = :id")
void deleteById(int id);

用于删除所有行

@Query("DELETE FROM yourDatabaseTable")
void delete();
长孙宜
2023-03-14

房间的美妙之处在于,我们可以玩物品。根据要求,您可以使用kotlin:

@Delete
fun delete(model: LanguageModel)

对于Java:

@Delete
void delete(LanguageModel model)

它将删除存储在具有相同值的数据库中的确切对象。Language ageModel是我的模型类,它工作得很好。

夏侯华彩
2023-03-14

实际上,您可以使用Query执行删除操作。

@Query("DELETE FROM users WHERE user_id = :userId")
abstract void deleteByUserId(long userId);

从查询javadoc中提取:

UPDATE或DELETE查询可以返回val或int。如果是int,则该值是受此查询影响的行数。

 类似资料:
  • 我对Room有一个问题,我在其他地方找不到帮助——在SQLite中使用“LIKE”时匹配任意数量字符的常用“%”与我们在团队项目中使用的Room delete查询不兼容。 我们在Kotlin中有一个定义为字符串的删除查询,在我们的一个DAO中: 以及同一DAO中的deleteRequest: 但是,在“:reservationCode”参数引用周围添加百分比符号后,我们会出现以下错误: 输入“从u

  • 如何使用房间持久性库删除特定表上的所有条目?我需要删除表,但我找不到任何信息如何做到这一点。 仅当数据库正在迁移或加载所有条目并删除它们时:)

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

  • 我想实现Android房间持久性。这是我的DAO接口。 出于某种原因,我有以下编译错误: 错误:可观察的查询返回类型(LiveData、Flowable、DataSource、DataSourceFactory等)只能与直接或间接(例如通过@关系)访问至少一个表的SELECT查询一起使用。对于@RawQuery,您应该通过observedEntities字段指定要观察的表的列表。公开摘要andro

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

  • 我正在迁移一个运行在Android上的现有应用程序,并正在将其迁移到Raspberry Pi。只是想知道是否有可能直接迁移Room数据库的使用。