android - 如何在房间中自动增加主键?

标签 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 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
)
上面的类是我的实体类。我希望主键自动递增。
但是当我创建一个类的对象时:
var favouriteEntity = FavouriteEntity(

            userId,
            restaurant.restaurantId,
            restaurant.restaurantName,
            restaurant.restaurantImageUrl,
            restaurant.restaurantCostForOne,
            restaurant.restaurantRating
        )
我需要传递一个整数作为 id。但我想自动递增。请帮忙。

最佳答案

您可以简单地:

data class FavouriteEntity(
    @PrimaryKey(autoGenerate = true)
    val id : Int = 0 
)
或者
data class FavouriteEntity(
    @PrimaryKey(autoGenerate = true)
    val id : Int? = null 
)
并且 id 字段将自动生成/自动递增 id field 。
然后将其与命名参数一起使用:例如
data class FavouriteEntity(
        val id: Int = 0,
        val name: String
)

fun main() {
    FavouriteEntity(name = "name")
}

关于android - 如何在房间中自动增加主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62894453/

相关文章:

java - 如果android终止进程如何处理后按

java - 为什么通过 MediaController (Android) 播放声音时 SeekBar 不移动?

php - mysqli 根据行ID值显示数据

Python 列表类 __contains__ 方法功能

java - main 中创建的对象不会在其他类中执行

android - 如何设置多个每日闹钟?

android - Android Cursor 的读取是否一直到数据库?

java - 我可以只使用一张表进行所有 hibernate 环境审计吗?

Swift:指向结构体与类的指针

android - 减少 ViewPager 中的空垂直高度