【问题标题】:How to update data in objectbox flutter如何更新对象框颤振中的数据
【发布时间】:2021-10-18 04:32:46
【问题描述】:

我使用 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;
  }

谢谢

【问题讨论】:

    标签: flutter flutter-objectbox


    【解决方案1】:

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

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

    【讨论】:

    • 另外,如果你在box.put()之后打印note.id,你会看到它等于id。所以基本上要更新,您可以稍后使用相同的对象,更改您需要的任何内容,然后再次执行box.put()
    【解决方案2】:

    要更新某些列或组,请使用 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);
    }
    

    【讨论】:

      猜你喜欢
      • 2022-07-05
      • 1970-01-01
      • 2021-07-24
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      • 2021-09-02
      相关资源
      最近更新 更多