You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Isar嵌入对象加载异常:加载父对象时嵌入列表为空

解决Isar数据库嵌入对象列表加载为空的问题

问题核心是嵌入对象列表需要显式添加@Embedded注解,Isar对单个嵌入对象会自动处理,但列表这类集合型嵌入对象必须标记注解才能正确加载。

修复步骤:

  1. 修改Email类的recipients字段,添加@Embedded()注解:
@collection
class Email {
  Id? id;
  String? title;
  @Embedded()
  List<Recepient> recipients = List.empty(growable: true);
}

@embedded
class Recepient {
  String? name;
  String? address;
}
  1. 重新生成Isar代码适配器:
    运行终端命令:
dart run build_runner build
  1. 重新测试加载逻辑,此时recipients列表就能正常读取到存储的嵌入对象了。

原因说明:

Isar Inspector能看到完整数据,是因为存储时Isar可识别嵌入对象结构并写入,但加载时如果列表字段没加@Embedded注解,Isar不会自动解析这个集合类型的嵌入数据,最终导致列表为空。

内容的提问来源于stack exchange,提问作者Nicola Loro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:23:14