如何从 Hive 盒对象中获取密钥并将其映射到对象的特定字段?

Posted

技术标签:

【中文标题】如何从 Hive 盒对象中获取密钥并将其映射到对象的特定字段?【英文标题】:How to get key from Hive box object and map it to specific field of the object? 【发布时间】:2020-09-01 16:38:28 【问题描述】:

框是自动递增的。

假设我有一个像这样的对象:

@HiveType(...)
class Dummy 
  
  @HiveField(0)
  int id;

  @HiveField(1)
  String name;


我希望 Hive 反序列化将 Dummy 对象的键映射到 id 字段。

【问题讨论】:

【参考方案1】:

如果你从 HiveObject 继承你的类,那么你可以使用内置属性'key'。

    @HiveType(...)
    class Dummy extends HiveObject
      //id not needed anymore
   
      @HiveField(0)
      String name;
    
    
    
    ...
    
    Box<Dummy> db = Hive.box<Dummy>('dummy');
    Dummy dummy = Dummy(name: "some text");
    db.add(dummy); //add assigns next integer as key

    //after storing object to a database, you can access its key using 'key' property
    int id = dummy.key;

    //another advantage of extending HiveObject, is that you can store or delete object from the database without accessing the box:
    dummy.name = "other text";
    dummy.save(); //put modified object into box
    dummy.delete(); //delete object from the database

【讨论】:

非常感谢您的回复。我已经切换到 SQLite。我希望这对其他人有帮助。

以上是关于如何从 Hive 盒对象中获取密钥并将其映射到对象的特定字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何对一组对象进行分组并将其映射到不同的结构?

从字符串到 Hive 中的映射对象

Angular Firestore 映射文档到对象

打字稿:如何将对象映射到类型?

如何在对象内映射 JSON 数据对象?

如何从下拉框中获取用户选择的值并将其添加到模型中? [重复]