This repository has been archived on 2025-08-03. You can view files and clone it, but cannot push or open issues or pull requests.
network-orbit/docs/docs/api/relationship-manager.md
anonpenguin f183015f47 Add comprehensive documentation for decorators, migration, and relationships in DebrosFramework
- Introduced hook decorators for lifecycle methods in models.
- Documented @Model decorator for model configuration.
- Added relationship decorators for defining model relationships.
- Created MigrationBuilder and MigrationManager documentation for schema migrations.
- Added QueryExecutor and RelationshipManager documentation for query execution and relationship handling.
- Included examples for complex queries and migration scenarios.
- Developed a social platform example showcasing model relationships and application structure.
- Enhanced contributing guidelines with community, documentation, and release processes.
- Established testing guidelines for unit and integration tests.
2025-07-09 16:43:01 +03:00

1.1 KiB

sidebar_position
sidebar_position
6

RelationshipManager

The RelationshipManager handles model relationships and data loading in DebrosFramework.

Overview

The RelationshipManager manages relationships between models, handles lazy and eager loading, and provides relationship caching for performance optimization.

Class Definition

class RelationshipManager {
  constructor(
    private databaseManager: DatabaseManager,
    private queryExecutor: QueryExecutor
  );
}

Core Methods

Relationship Loading

loadRelationship<T>(model, relationship)

Loads a relationship for a model instance.

async loadRelationship<T>(
  model: BaseModel,
  relationship: string
): Promise<T | T[]>

Parameters:

  • model - The model instance
  • relationship - The relationship name to load

Returns: Promise resolving to related model(s)

Example:

const user = await User.findById('user123');
const posts = await relationshipManager.loadRelationship(user, 'posts');