Skip to main content

Module relation_trait

Module relation_trait 

Source
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§

RelationDef
关联关系定义(零分配,编译期常量)

Enums§

JoinKind
JOIN 类型(与 join_dsl::JoinKind 对齐,独立定义避免循环依赖)
RelationKind
关联关系类型

Traits§

RelationTrait
关联关系 trait — 由 #[derive(Relation)] 自动实现