【发布时间】:2021-01-12 18:48:39
【问题描述】:
我最近开始使用 Room,我想知道在插入或更新实体时是否有任何方法可以检查值是否为空,在这种情况下,不要插入/更新它。
我想要做的是类似的事情
@Entity
data class Person{
@PrimaryKey
val id: Int,
val name:String
val surname:String
}
是否有可能以一种简单的方式对那些不为空的字段执行@Update 操作?而那些为空的则保持原样?
例如,在一次更新中,我可能已经告知了身份证和姓名,但在另一次更新中,我可能已经告知了身份证和姓氏。所以我想要的是合并信息,但如果可能的话,不必进行选择查询来检查存储的值。
我已经阅读了following post,但我怀疑是否可以定义一个@Entity,将所有字段定义为我之前提到的字段,然后让其他实体只更新一些字段,类似:
@Entity(tableName = "person")
data class PersonUpdateSurname{
@PrimaryKey
val id: Int,
val name:String
}
@Entity(tableName = "person")
data class PersonUpdateSurname{
@PrimaryKey
val id: Int,
val surname:String
}
有没有办法告诉 Room 原来的表结构是什么?
【问题讨论】:
标签: android database kotlin android-sqlite android-room