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§
- Eager
Loader - Eager Loading 执行器
Enums§
- Nested
Eager Result - 多级 Eager Loading 结果(递归类型,v2.2.0 新增)
Functions§
- eager_
load_ all - 一行 API:Eager Loading 端到端自动执行与组装
- eager_
load_ one - 一行 API:HasOne / BelongsTo 单条关联加载(JOIN 策略)
Type Aliases§
- Eager
Result - Eager Loading 结果类型:主表行 + 关联行列表