如何将主键作为Room Persistence lib的自动增量

我正在创建一个Entity(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) ,你想要自动生成的ID,你这样做。

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

然后房间会自动生成并自动递增id字段。