java - 房间数据库的删除方法不起作用
问题描述
我有这样的 DAO 方法
@Query("DELETE FROM Weather WHERE name = :name")
Completable deleteDataByName(String name);
天气对象
@Entity
public class Weather {
@PrimaryKey(autoGenerate = true)
public int id;
public String name;
public String date;
public String description;
public String icon;
etc.
deleteDataByName
调用方法时不会删除数据。我该如何解决?数据库中有 16 个具有相同名称的 Weather 对象如何删除它们?
解决方案
可能您需要使用高于或等于 2.1.0 的房间版本如果您使用 gradle 构建应用程序,请转到项目 gradle 文件并添加以下行:
ext {
roomVersion = '2.1.0-rc01'
}
然后,您可以使用以下命令在应用程序 gradle 中更新您的房间依赖项:
implementation "androidx.room:room-rxjava2:2.1.0"
implementation "androidx.room:room-runtime:$rootProject.roomVersion"
您也可以在此处找到更多信息。
编辑 这是您可能需要的完整应用程序 gradle(加上您的其他依赖项):
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
...
}
allprojects {
repositories {
...
}
}
dependencies {
// Room components
implementation "androidx.room:room-runtime:$rootProject.roomVersion"
implementation "androidx.room:room-rxjava2:2.1.0"
kapt "androidx.room:room-compiler:$rootProject.roomVersion"
}
推荐阅读
- verilog - 将随机数据写入测试台中的 RAM
- javascript - 为什么 new^.prototype 在此代码中作为原型传递给 Object.create(proto) 而不是常规对象或常规构造函数原型?
- android - 在 Fragment Android 中显示 DatePickerFragment
- android - 导航组件:BottomNavigationView 和 navigationDrawer,在一个项目 android
- python - os.getenv("username") 不返回环境变量而是我的名字
- vue.js - Vue js Django Rest 框架与 JWT 用户身份验证(获取匿名用户) simplejwt simplejwt
- python - 使用 Django 动态处理存储过程结果
- vb.net - VB 中预期的语句结束
- javascript - 在javascript和d3中将几个json文件读入一个数组然后使用它们
- javascript - 计算从今天到现在的天数
javascript中的标记