Как сделать первичный ключ как автоинкремент для Room Persistence lib

Я создаю класс еды (Room Persistence lib), где я хочу сделать foodId как автоинкремент.

 @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() } 

Как я могу настроить foodId поле автоинкремента?

Вам необходимо использовать свойство autoGenerate

Ваша основная аннотация должна быть такой:

 @PrimaryKey(autoGenerate = true) 

Ссылка здесь

Вы можете добавить @PrimaryKey(autoGenerate = true) следующим образом:

 @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() } 

Например, если у вас есть users объект, который вы хотите сохранить, с полями (firstname, lastname , email) и вы хотите получить автогенерированный идентификатор, вы это сделаете.

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

Затем комната будет автогенерировать и автоматически увеличивать поле id .