有没有办法在Room persistance表中存储Observable变量?

时间:2017-10-27 07:33:58

标签: android rx-java rx-android android-room

我使用Room库来保存和检索应用程序的数据。模型类 User 具有变量,如 - Observable name等,其中Observable是RxJava类。但是现在gradle构建失败是由于 - 错误:无法弄清楚如何将此字段保存到数据库中。您可以考虑为其添加类型转换器。

所以我看看如何将Observable变量保存到表中? 我知道类型转换器但无法知道如何执行此操作。就像从Observable到Database保存字符串值一样,当我们从Database获取数据时,再将它转换为Observable。

有任何提示吗?

1 个答案:

答案 0 :(得分:0)

你可以做像

这样的事情
@Entity(tableName = "my_table")
public class MyTable { 

    @ColumnInfo(name = "my_string_value")
    public String myStringValue;
}

然后创建你的DAO

@Dao
public class MyTableDao {

    @Query("select my_string_value from my_table limit 1 ") 
    Flowable<String> selectMyStringValue();

}


Flowable<String> flowable = myAppDataBase.getMyTableDao().selectMyStringValue();

我不知道你为什么要保存一个Observable ......但首先你不应该这样做。

要使用上面的代码,您必须添加RxJava2依赖项,因为Flowable。