- 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.
1.1 KiB
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 instancerelationship
- 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');
Related Classes
BaseModel
- Base model classQueryExecutor
- Query execution