Модернизация вставки в хранилище комнаты, но вставка только одной строки - PullRequest
0 голосов
/ 18 февраля 2020

Я думаю, что это правильно, но всегда вставляйте один ряд, я не знаю почему? Я пользователь MVVM, внедрение зависимостей (Kodein) и Coroutin

(интерфейс) MyApi.kt

@GET("param-list-all")
suspend fun getParamterALL() : Response<List<AllParam>>

(класс) Provinsi.kt

@Entity(primaryKeys = ["id"])
data class Provinsi(
    val createdBy: String?,
    val createdDate: Long?,
    val id: Int?,
    val provinceCode: String?,
    val provinceName: String?,
    val updatedBy: String?,
    val updatedDate: Long?
)

ProvinsiRepo.kt

class ProvinsiRepo(
    private val api: MyApi,
    private val db: AppDatabase
) : SafeApiRequest(){
suspend fun getAllProvinsiAPI(): List<Provinsi> {
    return apiRequest{
        api.getProvinsi()
    }
}

suspend fun saveallParam(param: List<Provinsi>) = db.getProvinsiDao().upsert(param)
}

ProvinsiViewModel.kt

class ProvinsiViewModel(
    private val provinsirepo: ProvinsiRepo,  
) : ViewModel() {

   provinsirepo.getAllProvinsiAPI().let { provinsi->
          provinsirepo.saveallParam(provinsi)
   }

DAO

@Dao
interface AllParamDAO {

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun upsert(parameter: List<AllParam>)

}
...