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

ObjectBox中ToMany关系下如何查询不存在关联对象的实体?

解决方案

你可以直接通过ObjectBox提供的关联查询能力在数据库层面完成过滤,无需全量查询后再做内存遍历,代码实现如下:

// 直接查询所有未关联任何Delivery的Attribute实体
List<Attribute> emptyDeliveryAttrs = attributeBox.query()
    .link(Attribute_.delivery) // 关联Attribute到Delivery的ToMany关系
    .isNull() // 筛选无关联匹配的记录
    .build()
    .find();

// 遍历结果打印日志即可,无需额外判断关联是否为空
for (Attribute attr : emptyDeliveryAttrs) {
    Timber.i("Attribute without delivery: %s", attr.getName());
}

说明

  • 该方案利用ObjectBox的关联查询特性,直接在数据库层完成过滤,相比全量查询后遍历的实现,在数据量较大的场景下性能优势非常明显
  • 代码中的Attribute_是ObjectBox编译时自动生成的元模型类,如果IDE提示找不到该类,先清理并重新编译项目即可
  • 如果你的ToMany字段名不是delivery,替换成自己实体类中对应的字段名即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:30:04