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

Objectbox中如何查询与指定账户相关的所有交易?

解决Objectbox中查询特定账户相关交易的问题

你的问题出在多个link条件默认是AND逻辑,当前代码只会返回同时满足toAccount和fromAccount都是目标账户的交易,而你需要的是满足任一条件的交易,必须用OR来组合两个关联查询。

正确的实现方式是用QueryBuilder.or()将两个link条件包裹起来,代码如下:

Future<List<Transaction>> getAllTransactionsForAccount(int accountId) {
  final box = objectBox.store.box<Transaction>();
  final queryBuilder = box.query();
  
  // 用or()组合两个条件:转入该账户 或 从该账户转出
  queryBuilder.or(
    (qb) => qb.link(Transaction_.toAccount, Account_.id.equals(accountId)),
    (qb) => qb.link(Transaction_.fromAccount, Account_.id.equals(accountId)),
  );
  
  return queryBuilder.build().findAsync();
}

代码说明

  • queryBuilder.or()方法接受两个回调,分别定义两个需要进行OR判断的条件
  • 第一个回调创建toAccount关联到目标账户的查询条件(转入交易)
  • 第二个回调创建fromAccount关联到目标账户的查询条件(转出交易)
  • 最终查询会返回满足任一条件的所有Transaction记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:54:49