@Entity
data class SegmentEntity(
@PrimaryKey(autoGenerate = true)
val id: Long,
var rideRelatedId: Long?,
var name: String?,
var speed: String?
SegmentEntity(0,3,"Dan","90")
您可以将数据类更改为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。发生什么事了?