仅更新 ObjectBox 中选定的列 Android
Update only selected columns in ObjectBox Android
是否可以仅更新 ObjectBox Android 中选定的列?
例如“提醒”实体中有5列
@Entity
data class Remind (
@Id var id: Long = 0,
var title: String? = null,
var memo: String? = null,
var ymd: String? = "2021-01-01 FRI"
var done: Int = 0
)
并且我只想更新现有 ID 的“完成”列。
所以我试过了,
private fun putRemind(done: Int, id: Long) {
val newRemind = Remind(done = done, id = id)
ObjectBox.store.boxFor(Remind::class.java).put(newRemind)
}
但是,所有列都被覆盖了(其他列填充了初始值)。
有什么简单的方法可以只覆盖选定的列吗?
或者我总是必须重新放置所有列?
谢谢。
首先,ObjectBox 中没有列的概念,例如它不是关系数据库。它存储对象并且速度非常快。因此,更新的方法是获取一个对象(如果您还没有),更新一个或任意多个您想要的属性,然后 put()
。这样做的另一个好处是您不需要为每个人使用更新方法 属性.
是否可以仅更新 ObjectBox Android 中选定的列?
例如“提醒”实体中有5列
@Entity
data class Remind (
@Id var id: Long = 0,
var title: String? = null,
var memo: String? = null,
var ymd: String? = "2021-01-01 FRI"
var done: Int = 0
)
并且我只想更新现有 ID 的“完成”列。
所以我试过了,
private fun putRemind(done: Int, id: Long) {
val newRemind = Remind(done = done, id = id)
ObjectBox.store.boxFor(Remind::class.java).put(newRemind)
}
但是,所有列都被覆盖了(其他列填充了初始值)。
有什么简单的方法可以只覆盖选定的列吗? 或者我总是必须重新放置所有列?
谢谢。
首先,ObjectBox 中没有列的概念,例如它不是关系数据库。它存储对象并且速度非常快。因此,更新的方法是获取一个对象(如果您还没有),更新一个或任意多个您想要的属性,然后 put()
。这样做的另一个好处是您不需要为每个人使用更新方法 属性.