kotlin - 房间用构造函数生成 id
问题描述
我使用的是 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") var duration: Long?,
): Serializable {
constructor(
) : this(null, "", 0, 0)
}
在活动中,我将在运行时初始化 cals 并设置参数:
var task: TaskEntity
task = TaskEntity()
task.name = cal.name
....
道类:
@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)
}
但是 ID 始终为 null,就像在构造函数中一样。我在一些文档中看到如果它为空,它将自动生成。我错过了什么?
解决方案
您已经手动创建了对象,TaskEntity
所以它uid
是 null
或者初始值允许具有主键和标志的整数字段
所以我想最好写null
0
autoGenerate
@PrimaryKey(autoGenerate = true) var uid: Long,
// ...
) : this(0L, "", 0, 0)
推荐阅读
- php - php 会话未始终存储在三星 Galaxy S7 浏览器上
- angularjs - 对特定指令应用 $digest
- python - ndarray中列表的出现
- javascript - ChartJS - 渐变颜色重叠
- logging - 如何在 Stackdriver Logging 上禁用来自 k8s_cluster 的日志?
- angular - 当使用帮助服务访问我的 API 以检索 1 条记录时,我得到空值并且没有显示任何内容
- asp.net - Visual Studio 2013 Web 表单和设计视图等效于 Visual Studio 2019?
- omnet++ - 如何在 omnet++ 中设置网络区域尺寸?
- bash - 在 bash 上异步运行远程进程并在文件中获取其远程 pid、stdout+stderr 并退出代码
- reactjs - 无法将 redux 商店连接到 sematic ui 调光器组件