仅更新 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()。这样做的另一个好处是您不需要为每个人使用更新方法 属性.