0

ObjectBox 文档描述了创建 1:1 和 1:n 关系。但是创建 1:n:m 关系是否可能和可行?所以我会有一个像这样的域数据模型

class ClassA {
  List<ClassB> myClassB;
}
class ClassB {
  List<ClassC> myClassC;
}
class ClassC {
  List<ClassD> myClassD;
}
class ClassD {
  int x;
}

并且想用一种myClassB.toObjectBox()ClassB.fromObjectBox(OboxEntity)方法来回转换它。

我不确定我是否可以轻松地将 1:n 方法扩展到进一步的嵌套层,并且通常将嵌套数据存储为 JSON 字符串是否更有意义。

===关于马库斯的回答的更新===

我通常使用 3 个数据模型层:域、数据传输、数据源。数据传输层提供其他 2 之间的中间方法。

enum myEnum {left, right};

@Entity
class MyDataOboxEntity {
 int id;
 int enum;
 MyDataOboxEntity({this.id, this.enum});
}

class MyDataDtoEntity {
 int id;
 int enum; 
 MyDataDtoEntity({this.id, this.enum});
 
 factory MyDataDtoEntity.fromObjectBox(MyDataOboxEntity entity) {
    return MyDataDtoEntity(
      id: entity.id,
      enum: MyEnum[entity.enum],
  }
 
 MyDataOboxEntity toObjectBox() {
    return MyDataOboxEntity(
      id: id,
      enum: enum,
 }
 
 MyDataEntity toDomain() {
    return MyDataEntity(
      id: id,
      enum: myEnum.values[enum],
    );
}

class MyDataEntity {
 int id;
 MyEnum enum; 
 MyDataDtoEntity({this.id, this.enum});
}

然后为了获得一个值,我会调用存储库中的数据类 myData = MyDataDtoEntity.fromObjectBox(getDataFromObjectBox(id: id)).toDomain();

4

1 回答 1

0

在实体类之间有多个关系是完全可以的。ObjectBox 是一个可以非常有效地查找不同类型对象的数据库。

想用 myClassB.toObjectBox() 和 ClassB.fromObjectBox(OboxEntity) 方法来回转换它。

这是我不太清楚的部分。也许你想澄清一下?

于 2021-09-02T08:36:12.913 回答