Kotlin 使用构造函数生成房间id
我正在使用房间DB,我需要生成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
@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类和你如何填充对象吗?