Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在房间内自动增加主键?_Android_Database_Class_Kotlin_Android Room - Fatal编程技术网

Android 如何在房间内自动增加主键?

Android 如何在房间内自动增加主键?,android,database,class,kotlin,android-room,Android,Database,Class,Kotlin,Android Room,上面的类是我的实体类。我希望主键自动递增。 但当我创建类的对象时,如: data class FavouriteEntity( @PrimaryKey(autoGenerate = true) val id : Int?, @ColumnInfo(name = "user_id") var userId : String, @ColumnInfo(name = "fav_restaurant_id") var favouri

上面的类是我的实体类。我希望主键自动递增。 但当我创建类的对象时,如:

data class FavouriteEntity(
    @PrimaryKey(autoGenerate = true)
    val id : Int?,
    @ColumnInfo(name = "user_id") var userId : String,
    @ColumnInfo(name = "fav_restaurant_id") var favouriteRestaurantId : String,
    @ColumnInfo(name = "fav_restaurant_name") var favouriteRestaurantName : String,
    @ColumnInfo(name = "fav_restaurant_img") var favouriteRestaurantImage : String,
    @ColumnInfo(name = "fav_restaurant_price") var favouriteRestaurantPrice : String,
    @ColumnInfo(name = "fav_restaurant_rating") var favouriteRestaurantRating : String
)

我需要传递一个整数作为id。但我希望id自动递增。请提供帮助。

由于id将自动生成,您可以将代码更改为:

var favouriteEntity = FavouriteEntity(

            userId,
            restaurant.restaurantId,
            restaurant.restaurantName,
            restaurant.restaurantImageUrl,
            restaurant.restaurantCostForOne,
            restaurant.restaurantRating
        )
这样,您可以跳过设置值:

@PrimaryKey(autoGenerate = true)
val id : Int = 0
你可以简单地:

数据类收藏夹实体(
@PrimaryKey(自动生成=真)
val id:Int=0
)

数据类收藏夹实体(
@PrimaryKey(自动生成=真)
val id:Int?=null
)
id字段将自动生成/自动增加
id
字段

然后将其与命名参数一起使用:例如

数据类收藏夹实体(
val id:Int=0,
val名称:String
)
主要内容(){
收藏夹实体(name=“name”)
}

创建此类对象时,应为id指定什么值。?如果留空,则显示错误。无值。只需使用命名参数。当我创建此类的对象时,应该为id指定什么值。?如果我将其留空,它将显示一个错误。您只需跳过id值。我对我的答案进行了编辑,以便更清楚。
var favouriteEntity = FavouriteEntity(
            restaurant.restaurantId,
            restaurant.restaurantName,
            restaurant.restaurantImageUrl,
            restaurant.restaurantCostForOne,
            restaurant.restaurantRating
        )