Entity:
Код: Выделить всё
@Entity(
tableName = "dayNutrientAmount",
primaryKeys = ["date", "nutrientId"],
indices = [Index(value = ["date", "nutrientId"], unique = true)]
)
data class DayNutrientAmount(
val date: String,
val nutrientId: Int,
val receivedAmount: Int = 0,
)
Код: Выделить всё
@Insert(onConflict = OnConflictStrategy.IGNORE)
suspend fun insertNewDayNutrient(dayNutrientAmount: DayNutrientAmount)
Код: Выделить всё
fun insertNewDayNutrientAmount(nutrientId: Int, date: String) {
viewModelScope.launch(Dispatchers.IO) {
mainScreensRepositoryImpl.insertDayNutrientAmount(DayNutrientAmount(
date, nutrientId
))
}
}
Код: Выделить всё
val nutrients = homeScreenVM
.getAllNutrients()
.collectAsState(initial = emptyList())
.value
LaunchedEffect(key1 = nutrients, key2 = selectedDate) {
nutrients.forEach { nutrient ->
homeScreenVM.insertNewDayNutrientAmount(nutrient.nutrientId, selectedDate)
}
}
Мне нужна уникальная комбинация даты и идентификатора питательного вещества, и они не обязательно должны быть первичными ключами. Я попытался добавить простой ключ для каждой строки (просто целочисленный идентификатор) вместо того, чтобы создавать первичные ключи питательного идентификатора и даты. Но результат был тот же. Заранее спасибо
Подробнее здесь: https://stackoverflow.com/questions/785 ... -work-room