Предположим, что мы хотели бы заменить все элементы в Android Room DB самым простым возможным способом.Каков будет подход к этой задаче?
Является ли @Query("DELETE FROM user")
синхронным или асинхронным в этом случае?Является ли использование @Transaction
жизнеспособным решением?
@Dao
interface UserDao {
companion object {
fun replaceAll(instance: UserDao, users: List<User>) {
instance.clearEntireTable() // possibly asynchronous ?
insertAll(instance, users) // synchronous
}
private fun insertAll(instance: UserDao, users: List<User>) = users.forEach { instance.insert(it) }
}
@Query("DELETE FROM user")
fun clearEntireTable()
@Insert
fun insert(user: User)
@Delete
fun delete(user: User)
}