Expand description
RelationTrait — 类型安全的关联关系定义与 JOIN 链式 API
提供 RelationKind / RelationDef / RelationTrait 核心类型,
配合 #[derive(Relation)] 宏自动生成 RelationTrait 实现,
追平 SeaORM User::find().join(Posts) 链式关联查询体验。
§设计
RelationDef使用&'static str零分配描述关联关系RelationTrait提供def()/all_relations()方法RelationKind::default_join_type()决定 JOIN 类型(HasOne/BelongsTo → INNER,HasMany/ManyToMany → LEFT)
§用法
ⓘ
use sz_orm_core::relation_trait::{RelationDef, RelationKind, RelationTrait};
struct User;
impl RelationTrait for User {
fn def(&self) -> &'static RelationDef { &RELATIONS[0] }
fn all_relations() -> &'static [RelationDef] { RELATIONS }
}
static RELATIONS: &[RelationDef] = &[
RelationDef::new("orders", "users", "orders", "id", "user_id", RelationKind::HasMany),
];Structs§
- Relation
Def - 关联关系定义(零分配,编译期常量)
Enums§
- Join
Kind - JOIN 类型(与
join_dsl::JoinKind对齐,独立定义避免循环依赖) - Relation
Kind - 关联关系类型
Traits§
- Relation
Trait - 关联关系 trait — 由
#[derive(Relation)]自动实现