我读过这篇文章。
Room支持@RawQuery
注释,以在运行时构造查询,例如代码A。
如果我使用代码B,当我完成它时,我会得到错误B。
似乎@RawQuery
不支持返回LiveData
,对吧?
代码A
interface DBVoiceDao{
@RawQuery
fun runtimeQuery(sortQuery: SupportSQLiteQuery): List<MVoice>
...
}
代码B
interface DBVoiceDao{
@RawQuery
fun runtimeQuery(sortQuery: SupportSQLiteQuery): LiveData<List<MVoice>>
...
}
错误B
Schema export directory is not provided to the annotation processor so we cannot export the schema. You can either provide `room.schemaLocation` annotation processor argument OR set exportSchema to false.
public abstract class DBVoiceDatabase extends androidx.room.RoomDatabase {
^[WARN] Incremental annotation processing requested, but support is disabled because the following processors are not incremental: androidx.room.RoomProcessor (DYNAMIC).
它确实支持它,但是您必须指定观察到的实体,如以下https://developer.android.com/reference/androidx/room/RawQuery示例所述:
kotlin prettyprint-override">@Dao
interface RawDao {
@RawQuery(observedEntities = Song.class)
LiveData<List<Song>> getSongs(SupportSQLiteQuery query);
}
我是新来的和我试图我的得到一个从它。我试图这样做的它与这是id但问题是我不知道如何返回目标从。 这就是<代码>刀 这是Repository类
我正在迁移一个运行在Android上的现有应用程序,并正在将其迁移到Raspberry Pi。只是想知道是否有可能直接迁移Room数据库的使用。
在viewmodel类中获取数据方法
我在Livedata上使用了Room和RxJava,但它不起作用<我试了两种方法。我不知道为什么第二个有效,为什么第一个无效。 (1)按单条获取列表- 道 ViewModel我使用了Repository模式(dao的返回类型和Repository的返回类型相同) 碎片 它在创建片段时工作,但数据在更改时不更新。 道 视图模型 碎片 当数据发生变化时,它工作得很好。 我期待你的建议。 请让我知道,如
我正在尝试获取消息的地图,作者id键如下: 这是我尝试过的: MessageViewModel.getAll()方法返回: 然后我将其转换为一个可流动的流(Flowable::fromIterable),这样它可以一次发出一个项目,而不是整个列表,然后我使用“toMultiMap”进行映射 on成功方法从不被调用,我不知道这里出了什么问题。如果我不使用toMultiMap(并对代码进行相应的修改)