使用 Hive typeadapter box 时如何放置数据使其不消失

How to put data so that it does not disappear when using Hive typeadapter box

我正在使用 typeadapter box,现在无法放入数据。

例如,当我创建一个“人”class,其中包含姓名、年龄和地址字段以及生成的适配器时,

在'Person box'的'id1'键中放入数据的方法如下。 (假设打开并拿到盒子)

put.box('id1', Person(name: 'john'));

或者像这样。

put.box('id2', Person(name: 'aa', age: 10));

但是,如果您执行上述操作,以前存储的年龄或地址值(在那些代码中不是保存的字段)似乎被删除了。就像没有 'merge'

的 Firestore 中的 'set' 方法

有没有办法像Firestore中的'update'方法一样,只更新'name'值,使'age'和'address'值不被删除?

我试图找到类似更新的任何方法

这是文档中的一个示例,说明如何仅更新此人的年龄。

var box = await Hive.openBox('myBox');

var person = Person()
  ..name = 'Dave'
  ..age = 22;

box.add(person);

print(box.getAt(0)); // Dave - 22

person.age = 30;
person.save();

print(box.getAt(0)) // Dave - 30

但在更新 Person 之前,您需要从框中对其进行初始化,然后进行更新。也许你用没有初始化年龄或其他的新数据更新 Person