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

Flutter中Isar数据库如何查询包含指定元素的列表数据

解决Isar列表元素查询问题

首先,你的代码存在语法错误和未执行查询的问题,另外需要确保Word类符合Isar的要求,以下是完整的修正方案:

1. 确保Word类正确定义

因为RootWord中的wordList是自定义对象列表,需要将Word标记为Isar的嵌入式类:

@embedded
class Word {
  late String engWord;
  // 其他字段按需添加
}

2. 修正查询代码

修复语法错误并添加查询执行方法:

List<RootWord> findRootWords({required Isar isar, required String str}) {
  return isar.rootWords.filter()
      .wordListElement((q) => q.engWordContains(str, caseSensitive: false))
      .findAll(); // 必须调用findAll()触发实际查询
}

关键说明

  • 原函数参数列表末尾缺少闭合的},导致语法报错;
  • Isar的查询构建器仅定义查询规则,必须调用findAll()(或findFirst()等方法)才会执行查询并返回结果;
  • wordListElement()方法用于筛选列表中存在至少一个元素满足条件的RootWord,完全匹配你的需求。

内容的提问来源于stack exchange,提问作者Yogi Wannabe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:12:49