我正在使用Room处理我的本地数据库,并使用LiveData处理DAO。
因此,我将LiveData用作事务处理的线程处理程序。
问题是如何使用LiveData进行插入和更新?还是通常无效函数如何在会议室中返回LiveData ?
@Query("select * from table")
fun getAll(): LiveData<List<T>>
@Insert
fun insert(T data): LiveData<?> // What should be the generic, since it's void?
在RxJava中,我们有这样的东西:
@Insert
fun insert(T data);
答案 0 :(得分:0)
问题是如何使用LiveData插入和更新?还是一般来说,无效函数如何在Room中返回LiveData?
您不能使用LiveData对象本身在数据库(db)中插入或更新数据。 LiveData是可以观察到的从db加载的对象的包装。
为了执行插入/更新操作,您需要将带有@Entity
注释的对象传递给DAO
方法参数。您可以通过调用LiveData#getValue()
来执行此操作,也可以在Activity中观察LiveData,或者通过观察者对Fragment进行更新并传递局部变量并传递该变量。