Я учусь Android Jetpack, следующий код взят из примера проекта на https://github.com/android/sunflower.
Код GardenPlanting.kt предназначен для При разработке таблицы мне очень странно, почему автор определяет поля таблицы в двух позициях, вы видите, что @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id")
расположен внутри класса.
Я думаю, что код B легко понять, да?
GardenPlanting.kt
@Entity(
tableName = "garden_plantings",
foreignKeys = [
ForeignKey(entity = Plant::class, parentColumns = ["id"], childColumns = ["plant_id"])
],
indices = [Index("plant_id")]
)
data class GardenPlanting(
@ColumnInfo(name = "plant_id") val plantId: String,
@ColumnInfo(name = "plant_date") val plantDate: Calendar = Calendar.getInstance(),
@ColumnInfo(name = "last_watering_date")
val lastWateringDate: Calendar = Calendar.getInstance()
) {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
var gardenPlantingId: Long = 0
}
Код B
data class GardenPlanting(
@PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") val id: String,
@ColumnInfo(name = "plant_id") val plantId: String,
@ColumnInfo(name = "plant_date") val plantDate: Calendar = Calendar.getInstance(),
@ColumnInfo(name = "last_watering_date")
val lastWateringDate: Calendar = Calendar.getInstance()
) {
var gardenPlantingId: Long = 0
}