当前位置: 首页 > 知识库问答 >
问题:

房间数据库自动生成PrimaryKey

蓝昊然
2023-03-14
@Entity
data class SegmentEntity(
@PrimaryKey(autoGenerate = true)
val id: Long,
var rideRelatedId: Long?,
var name: String?,
var speed: String?
SegmentEntity(0,3,"Dan","90")

共有1个答案

岳毅
2023-03-14

您可以将数据类更改为bellow并将您的id从Contractor中删除:

    @Entity
data class SegmentEntity(

    var rideRelatedId: Long?,
    var name: String?,
    var speed: String?
) {
    @PrimaryKey(autoGenerate = true)
    val id: Long? = null;
}

或者可以将默认值null设置为您的id,如下所示:

@Entity
data class SegmentEntity(
    @PrimaryKey(autoGenerate = true)
    val id: Long? = null,
    var rideRelatedId: Long?,
    var name: String?,
    var speed: String?
)  

在这种情况下,您必须调用您的类:

SegmentEntity(name = "nameValue",rideRelatedId = 1 ,speed ="speedValue")
 类似资料:
  • 我遇到了一个问题,我找不到任何关于Android空间和自动生成主键的文档。 我有一个实体类,看起来有点像这样: 当我手动设置id时,这是正常的,但是当我不设置主键时,我得到一个关于主键为空的错误。看着自动生成的文件,我看不到它会自动增加主键的任何地方。 所以我想我的问题是:你能用setter自动生成私有成员的主键吗,或者我需要在setter中手动自动生成我的键吗?

  • 问题内容: 我有一个带有id(guid)列的sql表。如何强制数据库为每条新记录自动生成新的Guid? 问题答案: 添加。

  • 错误:查询有问题:[SQLITE_ERROR]SQL错误或缺少数据库(没有这样的表:任务) 显示了这个错误,我怎么可能修复它? 我正在学习这个教程

  • 并且我发现了基于数据库版本4的可能场景的迁移varargs。 我的问题是,假设我使用的是db v1的Room,当我的应用程序到达db v10时,我将不得不编写多少迁移方法? 在sqlite中,我们在中获得已安装应用程序的当前db版本,我们只需通过开关大小写而不使用break语句,以便满足所有db升级。

  • 我是新来的和我试图我的得到一个从它。我试图这样做的它与这是id但问题是我不知道如何返回目标从。 这就是<代码>刀 这是Repository类

  • 所以我的数据库和一个网站实体一起工作 然后我尝试为网站上的网页添加关系 当我尝试使用我的网站Dao添加网站时,例如使用命令 我的应用程序崩溃了。创建的每个网站的id为0,外键约束失败。这里出了什么问题?我将primarykey从int更改为INTEGER,当我这样做时,它将主键设置为null,当primarykey为int时,它将id设置为0。发生什么事了?