Как реактивно получать обновление данных из БД SQLite?

Использую надстройку Room. У меня есть некоторая сущность

@Entity
data class MedicalData(
    @PrimaryKey val id: Int,
    @ColumnInfo(name = "Text") val text: String?,
    @ColumnInfo(name = "Number") val number: Int?
)

DAO для нее

@Dao
interface MedicalDataDao {
    @Query("SELECT * FROM MedicalData")
    fun getAll(): List<MedicalData>

    @Query("SELECT * FROM MedicalData  ORDER BY id DESC LIMIT :limit")
    fun getList(limit: Int): List<MedicalData>

    @Insert
    fun add(vararg medicalData: MedicalData)

    @Delete
    fun clear(medicalData: MedicalData)
}

И сама БД

abstract class AppDatabase : RoomDatabase() {
    abstract fun medicalDataDao(): MedicalDataDao
}

Создаю экземпляр БД и добавляю в него некоторые объекты:

bservable.create<MedicalData> {
            val db = Room.databaseBuilder(this, AppDatabase::class.java, "medtor").build()
            val medicalDataDao = db.medicalDataDao()
            val testObject = MedicalData(0, "some", 123)
            val testObject2 = MedicalData(1, "test", 456)
            val testObject3 = MedicalData(2, "text", 789)
            medicalDataDao.add(testObject)
            medicalDataDao.add(testObject2)
            medicalDataDao.add(testObject3)
        }.subscribeOn(
            Schedulers.io()
        ).subscribeBy(
            onNext = { print("onNext: $it") },
            onError = { print("onError: $it") },
            onComplete = { print("Complete") }
        )

Как я могу реактивно получать список объектов при добавлении нового, чтобы при вызове medicalDataDao.add(object) вызывался метод getAll() и выводил данные хотя бы в консоль?


Ответы (0 шт):