¿Es posible devolver Flow <List <Long>> después de insertar Room?
¿Es posible devolver Flow<List<Long>>después de Roominsertar?
Algo como esto:
@Insert(onConflict = REPLACE)
suspend fun insert( notesModel: List<NotesModel>): Flow<List<Long>>
Cuando lo hago, obtengo una excepción:
error: No estoy seguro de cómo manejar el tipo de retorno del método de inserción.
Respuestas
AFAIK, no puedes. El tipo de retorno de @Insertlas funciones comentadas podría ser Unit, Long, List<Long>, o Array<Long>.
Sólo @Querylas funciones comentadas son capaces de devolver los objetos observables como LivaData, Flow, Single, Flowable, etc . Debido a que las @Queryfunciones están diseñadas para poder reflejar cambios en db.
Aquí hay una cita de la documentación oficial :
Si el método @Insert recibe solo 1 parámetro, puede devolver un long, que es el nuevo rowId para el elemento insertado. Si el parámetro es una matriz o una colección, debería devolver long [] o List en su lugar.