Expand description
Relationship management for ORM entities
This module provides traits and utilities for defining and loading relationships between entities, preventing N+1 queries through automatic batching and eager loading.
§Example
use ormkit::relations::{BelongsTo, HasMany, RelationBuilder};
// Define relationship
impl BelongsTo<User> for Post {
fn foreign_key() -> &'static str {
"user_id"
}
}
// Load relationship
let posts_with_users = RelationBuilder::for_entities(posts)
.load::<User>(&pool)
.await?;Structs§
- Batch
Loader - Batch loading helper to prevent N+1 queries
- HasMany
Loader - Loader for multiple related entities (HasMany relationship)
- Loaded
- Wrapper for entities with loaded relationships
- Relation
Builder - Builder for loading relationships on entities
- Relation
Loader - Loader for a single related entity (BelongsTo relationship)
- Relation
Meta - Metadata about a relationship
Enums§
- Load
Error - Errors that can occur during relationship loading
- Load
Strategy - Loading strategy for relationships
- Loader
Error - Errors that can occur during lazy loading
Traits§
- Belongs
To - Trait for BelongsTo relationships (child-to-parent)
- Foreign
KeyExtractor - Helper to extract foreign key values from entities
- HasMany
- Trait for HasMany relationships (parent-to-children)