Avatar ·

如何在Room(Kotlin)中设置主键自增?

大家好!我是Kotlin Android开发新手,使用Room进行本地数据存储。我有一个用户Entity:\n\n```kotlin\n@Entity(tableName = "users")\ndata class User(\n @PrimaryKey val id: Int,\n val name: String,\n val age: Int\n)\n```\n\n我希望在插入新记录时,`id`字段能自动递增(类似SQLite中的AUTOINCREMENT)。但当我尝试不指定id插入用户时,Room会报错,因为id是必填字段(non-null)。我尝试将id设为nullable:\n\n```kotlin\n@PrimaryKey val id: Int? = null\n```\n\n但Room提示主键不能为nullable。我也试过`@NonNull`注解,但没用。\n\n如何正确配置自增?需要修改数据类型吗?或者添加某个注解?我看了文档但搞糊涂了。请帮忙解答!\n\nP.S. 我使用的是最新版Room(2.6.x)和Kotlin 1.9.x。\n<<>>\n

解决