2

我使用 ObjectBox 来存储数据。但是如何更新相同的数据。在文档中,它说它将更新数据。但是当我通过一个带有一些新细节的旧笔记时,它会创建新笔记。

 Future<int> createNotes(Note note) async {
    var store = await BoxStore.getStore();
    var box = store.box<Note>();
    int id = box.put(note);
    print('note id: $id');
    store.close();
    return id;
  }

谢谢

4

2 回答 2

2

您提供的代码看起来像创建一个新笔记。

如果 ObjectBoxid在其内部表键中找到该字段,则更新记录,否则创建新记录。因此,要么在从 ObjectBox 获取便笺时将便笺 id 存储在Note note其中并在更新时使用它,或者如果您使用某种自己的 id,那么 - 在存储时 - 首先通过自己创建查询来获取 ObjectBox 内部 id id 并将此 id 用于put注释作为更新

于 2021-08-16T15:13:13.023 回答
0

要更新某些列或组,您可以使用 put 示例:

var query2 = _stores.box<Documentos>().query(Documentos_.numero.oneOf(send)).build();

for (var w in query2.find().toList()) {
      w.enviado = 1;
      _stores.box<Documentos>().put(w);
}
于 2021-10-13T20:47:19.267 回答