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
相关产品推荐
相关产品推荐

