我正在尝试将 Hive
数据库与域和数据层连接起来。但是,我正在努力将我的实体数据类转换为 HiveObject
。使用我目前的方法,我收到了这篇文章标题中所示的错误。其他尝试也失败了,我开始意识到,我似乎对这些构造函数的工作原理缺乏了解...
所以一般来说,我想在具有构造函数的域层中使用 class ShProblem
static ShProblem fromEntity(ShmProblemEntity entity) {
return ShProblem(
id: entity.id,
level: entity.level,
);
}
此构造函数应通过实体类从/向数据源接收/提供数据。从 Hive
获取数据应该可以工作(未经测试,但至少没有编译错误),但是,相反的方式不适用于 JSON 映射(在 toDocument
构造函数中可见),我使用的是之前使用过其他数据库。
class ShmProblemEntity {
ShmProblemEntity({required this.id, required this.level, });
final int id;
final int level;
static ShmProblemEntity fromHive(ShProblemHive hiveObject) {
return ShmProblemEntity(
id: hiveObject.id,
level: hiveObject.level,
);
}
static ShProblemHive toHive() => {
ShProblemHive(
id: this.id,
level: level,
)
};
Map<String, dynamic> toDocument() => {
"id": id,
"level": level,
};
所以,令我感到奇怪的是 fromHive
没有抛出错误而 toHive
抛出错误,尽管我注意到 fromHive
与 class
具有相同的数据类型的区别构造函数而 toHive
没有。