Kotlin 使用构造函数生成房间id

Kotlin 使用构造函数生成房间id,kotlin,android-room,Kotlin,Android Room,我正在使用房间DB,我需要生成id: @Entity data class TaskEntity( @PrimaryKey(autoGenerate = true) var uid: Long?, @ColumnInfo(name = "title") var title: String?, @ColumnInfo(name = "start") var startTime: Long?, @ColumnInfo(name = "duration

我正在使用房间DB,我需要生成id:

@Entity
data class TaskEntity(
@PrimaryKey(autoGenerate = true) var uid: Long?,
@ColumnInfo(name = "title") var title: String?,
@ColumnInfo(name = "start") var startTime: Long?,
@ColumnInfo(name = "duration") var duration: Long?,
): Serializable {

 constructor(
) : this(null, "", 0, 0)
}
在“活动”中,我将初始化CALS并在运行时设置参数:

var task: TaskEntity
task = TaskEntity()
task.name = cal.name
.... 
Dao类:

@Dao
interface TasksDao {
@Query("SELECT * FROM  taskentity ORDER BY startTime ASC")
fun getAllTasks(): List<TaskEntity>

@Insert
fun insert(item: TaskEntity)

@Delete
fun delete(item: TaskEntity)

@Update
fun update(item: TaskEntity)

}
@Dao
接口任务{
@查询(“按startTime ASC从taskentity订单中选择*)
乐趣getAllTasks():列表
@插入
趣味插页(项目:任务实体)
@删除
趣味删除(项目:TaskEntity)
@更新
乐趣更新(项目:任务实体)
}

但是ID总是空的,就像在构造函数中一样。我在一些文档中看到,如果它为空,它将自动生成。我缺少什么?

您已经手动创建了
TaskEntity
对象,因此它的
uid
为空
此外,对于带有主键和
autoGenerate
标志的整数字段,允许使用
null
0
初始值
所以我想最好还是写

@PrimaryKey(autoGenerate=true)变量uid:Long,
// ...
):此(0升,“,0,0)

您已经手动创建了
任务实体
对象,因此它的
uid
为空
此外,对于带有主键和
autoGenerate
标志的整数字段,允许使用
null
0
初始值
所以我想最好还是写

@PrimaryKey(autoGenerate=true)变量uid:Long,
// ...
):此(0升,“,0,0)

它仍然不是自动生成的,而且总是0@Dim你在使用DAO吗?它仍然不是自动生成的,而且总是0@Dim你在使用DAO吗?你能展示你的DAO类和你如何填充对象吗?你能展示你的DAO类和你如何填充对象吗?