Skip to main content

Module eager_loader

Module eager_loader 

Source
Expand description

EagerLoader — Eager Loading 端到端自动执行与组装(P-F-1, v2.1.0)

一行 API eager_load_all(conn, main_sql, relation) 自动执行主表 + 关联表查询 并组装 Vec<(MainRow, Vec<RelatedRow>)>,消除 N+1。

§设计(ADR-v2.1.0-001)

  • HasMany / ManyToMany:双查询策略(主表查询 → 提取主键 → WHERE IN 批量查询 → 分组组装)
  • HasOne / BelongsTo:JOIN 策略(单条 SQL,结果集拆分组装)
  • 多级关联 with() 限 2 级(ADR-v2.1.0-006)
  • Oracle IN 列表 >1000 时分批查询

§用法

use sz_orm_core::eager_loader::eager_load_all;

let results = eager_load_all(
    &mut conn,
    "SELECT * FROM users",
    &order_relation,
).await?;
// results: Vec<(user_row, Vec<order_row>)>

Structs§

EagerLoader
Eager Loading 执行器

Enums§

NestedEagerResult
多级 Eager Loading 结果(递归类型,v2.2.0 新增)

Functions§

eager_load_all
一行 API:Eager Loading 端到端自动执行与组装
eager_load_one
一行 API:HasOne / BelongsTo 单条关联加载(JOIN 策略)

Type Aliases§

EagerResult
Eager Loading 结果类型:主表行 + 关联行列表