0

是否可以仅更新 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)
    }

但是,所有列都被覆盖(其他列填充了初始值)。

有什么简单的方法可以只覆盖选定的列吗?还是我总是必须重新放置所有列?

谢谢你。

4

1 回答 1

0

首先,ObjectBox 中没有列的概念,例如它不是关系数据库。它存储对象并且速度非常快。因此,更新的方法是获取一个对象(如果您还没有它),更新一个或多个您想要的属性,然后put(). 这样做的另一个好处是您不需要为每个单独的属性提供更新方法。

于 2021-12-04T10:28:36.207 回答