Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 房间数据库的删除方法不工作_Java_Android_Android Room - Fatal编程技术网

Java 房间数据库的删除方法不工作

Java 房间数据库的删除方法不工作,java,android,android-room,Java,Android,Android Room,我有一个这样的刀法 @Query(“从天气中删除,其中name=:name”) 可完成的deleteDataByName(字符串名称); 气象目标 @实体 公共天气{ @PrimaryKey(自动生成=真) 公共int id; 公共字符串名称; 公共字符串日期; 公共字符串描述; 公共字符串图标; 等 调用deleteDataByName方法时,数据不会被删除。 我怎样才能修好它? 数据库中有16个同名天气对象 如何删除它们? 我也有同样的问题,通过使用androidx组件解决。请尝试使

我有一个这样的刀法

@Query(“从天气中删除,其中name=:name”)
可完成的deleteDataByName(字符串名称);
气象目标

@实体
公共天气{
@PrimaryKey(自动生成=真)
公共int id;
公共字符串名称;
公共字符串日期;
公共字符串描述;
公共字符串图标;
等
调用
deleteDataByName
方法时,数据不会被删除。 我怎样才能修好它? 数据库中有16个同名天气对象 如何删除它们?


我也有同样的问题,通过使用androidx组件解决。请尝试使用更新的房间组件

    // optional - Kotlin Extensions and Coroutines support for Room
    implementation "androidx.room:room-ktx:$room_version"

    // optional - RxJava support for Room
    implementation "androidx.room:room-rxjava2:$room_version"

您可能需要使用高于或等于2.1.0的房间版本 如果您使用gradle构建应用程序,请转到project gradle文件并添加以下行:

ext {
    roomVersion = '2.1.0-rc01'
}
然后,您可以使用以下内容在应用程序gradle中更新房间相关性:

implementation "androidx.room:room-rxjava2:2.1.0"
implementation "androidx.room:room-runtime:$rootProject.roomVersion"
您还可以找到更多信息

编辑 这是一个您可能需要的完整应用程序梯度(加上其他依赖项):

我读了你的评论:

private void getDeleteByName(String city) { mAppDatabase.getWeatherDao().deleteDataByName(city); } – Vadim Fedchuk 2 days ago

你的
mAppDatabase.getWeatherDao().deleteDataByName(city)
本身不起任何作用,它是可完成的。您必须订阅它才能使其工作。

您的查询似乎正确,如何确保数据未被删除?在我从数据库读取的下一个活动中发布堆栈跟踪,并且数据存在,而不是删除。您可以在调用
deleteDataByName
函数的位置发布代码吗n?private void getDeleteByName(字符串城市){mAppDatabase.getWeatherDao().deleteDataByName(城市);}很抱歉,没有修复我的问题没有帮助:(你能粘贴你的actuals gradle构建脚本吗?因为我实际上在使用room,我的delete方法工作得很好。或者尝试从delete方法中删除返回类型,看看它是否工作,让它像这样:deleteDataByName(字符串名);最后一个希望是在数据库中查询要删除的天气对象,然后将其传递给delete方法:Completable deleteData(Weather Weather);我添加了image build.gradle
private void getDeleteByName(String city) { mAppDatabase.getWeatherDao().deleteDataByName(city); } – Vadim Fedchuk 2 days ago