插入Room
后是否可以返回Flow<List<Long>>
?
类似这样的东西:
@Insert(onConflict = REPLACE)
suspend fun insert( notesModel: List<NotesModel>): Flow<List<Long>>
当我这样做的时候,我会得到一个例外:
错误:不确定如何处理insert方法的返回类型。
AFAIK,你不能。@Insert
注释函数的返回类型可以是Unit
、Long
、List<Long>
或Array<Long>
。
只有@Query
带注释的函数才能返回可观察对象,如LivaData
、Flow
、Single
、Flowable
、等。因为@Query
函数被设计为能够反映数据库上的变化。
以下是官方文件中的一句话:
如果@Insert方法只接收一个参数,它可以返回一个long,即插入项的新行Id。如果参数是数组或集合,则应改为返回long[]或List。