Я только что нашел @PrimaryKey аннотацию в комнате. Итак, если я хочу создать составной ключ, так как я могу сделать это в MVVM?
Как сделать составной ключ в комнате при использовании MVVM в android
Ответ 1
Используйте primaryKeys()
.
Документация для разработчиков Android для Room
:
Если аннотация PrimaryKey используется в поле Embeddedd, все столбцы, унаследованные от этого встроенного поля, становятся составным первичным ключом (включая его большие дочерние поля).
Пример реализации:
@Entity(primaryKeys = {"column1","column2","column3"})
class DummyClass {
...
}
Спасибо Лалиту Кушве за пример.
Ответ 2
Вот пример
import android.arch.persistence.room.Entity
@Entity(primaryKeys= [ "first_name", "last_name" ] )
class User{
.......
}
Ответ 3
Это сработало для меня, я использую Kotlin 1.3, я думаю.
@Entity(tableName = "location_table", primaryKeys = ["lat", "lon"])
data class MyLocation(
// @PrimaryKey(autoGenerate = true) var id: Long?,
var lat: Double,
var lon: Double,
var dateTime: String,
var weatherDescription: String,
var temperature: Double
)