Cómo hacer que la key principal sea autoincrement para Room Persistence lib

Estoy creando una class Entity (Room Persistence lib) Food, donde quiero hacer foodId como autoincrement.

 @Entity class Food(var foodName: String, var foodDesc: String, var protein: Double, var carbs: Double, var fat: Double) { @PrimaryKey var foodId: Int = 0 var calories: Double = 0.toDouble() } 

¿Cómo puedo establecer foodId un campo de autoincrement?

Necesita usar la propiedad autoGenerate

Su anotación de key principal debería ser así:

 @PrimaryKey(autoGenerate = true) 

Referencia aquí

Puede agregar @PrimaryKey(autoGenerate = true) esta manera:

 @Entity data class Food( var foodName: String, var foodDesc: String, var protein: Double, var carbs: Double, var fat: Double ){ @PrimaryKey(autoGenerate = true) var foodId: Int = 0 var calories: Double = 0.toDouble() } 

Por ejemplo, si tiene una entidad de users que desea almacenar, con campos (firstname, lastname , email) y desea una identificación generada automáticamente, haga esto.

 @Entity(tableName = "users") data class Users( @PrimaryKey(autoGenerated = true) val id: Long, val firstname: String, val lastname: String, val email: String ) 

La habitación luego se autogenerará e incrementará automáticamente el campo de id .

  • ¿Cómo se ejecuta el método de suspensión a través de la reflexión?
  • Uso de Kotlin Coroutines en Android
  • Operaciones de transmisión diferida y reference no resuelta para transmisión ()
  • Android: el calendar especial de Java / Kotlin aparece
  • Comparar class de datos en Kotlin sin ID
  • ¿Cómo iterar sobre Single <List> y asignar a otra list?
  • Conceptos básicos de progtwigción de Kotlin
  • ¿Cómo puedo nombrar una variable automáticamente por su tipo en una plantilla en vivo?
  • Objectbox: cómo inicializar la relación ToMany <> en kotlin
  • Cómo crear una list inmutable que debe recorrer un campo de otra list
  • Error de configuration automática del complemento kotlin-gradle