6 Repos
Mechanisms for fetching associated entity data from relational databases.
Distinguishing note: Focuses on the strategy of fetching related data, distinct from general query execution.
Explore 6 awesome GitHub repositories matching data & databases · Relation Loading Strategies. Refine with filters or upvote what's useful.
TypeORM is an object-relational mapper for TypeScript and JavaScript that bridges the gap between object-oriented application code and relational database tables. It provides a comprehensive data persistence layer that allows developers to define database entities using class decorators or configuration objects, enabling seamless interaction with data through object-oriented patterns. The project distinguishes itself through a flexible architecture that supports both the data mapper and repository patterns, alongside a fluent query builder that translates high-level method calls into platform
TypeORM retrieves related entity data automatically during the initial database query, simplifying access to relationships and preventing the n+1 query problem.
Entity Framework Core is an object-relational mapper that enables developers to interact with database systems using strongly-typed code. It serves as a comprehensive data access framework, providing a unified interface for mapping application objects to relational and non-relational database schemas while managing the lifecycle of data operations through a central context. The project distinguishes itself through a provider-based architecture that decouples core data access logic from specific database engines, allowing for consistent interaction across diverse storage systems. It features a
Retrieves associated entities using eager, explicit, or lazy loading patterns to populate navigation properties.
Peewee is a SQL object-relational mapper and query builder that provides an object-oriented interface for mapping application classes to relational database tables. It functions as a relational database toolkit for managing schemas, executing migrations, and handling complex table relationships. The project distinguishes itself by providing an asyncio database driver for non-blocking database operations, ensuring event loop responsiveness. It also supports semi-structured data storage, allowing the storage and querying of flexible JSON documents within traditional relational database systems.
Implements lazy loading and eager prefetching strategies for fetching associated entity data.
SQLAlchemy is a comprehensive Python SQL toolkit and object-relational mapper that provides a full suite of tools for interacting with relational databases. It serves as a foundational layer for database connectivity, offering both a high-level object-oriented interface for data persistence and a programmatic SQL expression language for constructing complex, dialect-agnostic queries. The project distinguishes itself through its sophisticated unit of work persistence, which coordinates atomic transactions and tracks object state changes to minimize redundant database operations. It provides a
Controls how and when related data is fetched, including options for eager loading, lazy loading, and write-only access patterns.
xorm is a relational mapper and object-relational mapping tool for Go. It translates Go structures into SQL queries and maps database rows back into native objects, providing a multi-dialect database driver that supports MySQL, PostgreSQL, SQLite, Oracle, SQL Server, and TiDB. The project features a read-write splitting manager that routes modification requests to a primary database and read requests to replicas. It includes a database schema synchronizer to automatically align table structures and indexes with application data models, as well as a fluent SQL query builder for constructing co
Retrieves associated records from linked tables in a single operation through cascade loading.
GraphQL-Ruby ist eine Ruby-Bibliothek zum Erstellen von GraphQL-APIs mit einem stark typisierten Schema und einer dedizierten Query-Execution-Engine. Sie bietet ein umfassendes Framework zum Mappen von Anwendungsobjekten auf ein formales Typsystem, was strukturiertes Datenabrufen durch definierte Resolver ermöglicht. Das Projekt zeichnet sich durch fortschrittliche Performance- und Bereitstellungsmechanismen aus, darunter einen Data Loader für Batching und Caching zur Vermeidung von N+1-Abfragemustern. Es unterstützt leistungsstarke Datenbereitstellung durch inkrementelles Response-Streaming, verzögerte Abfrageantworten und paralleles Datenabrufen mittels Fibers. Zudem bietet es native Unterstützung für Relay-Konventionen, einschließlich spezialisierter Helfer für Connections und Objektidentifikation. Die Bibliothek deckt ein breites Spektrum an API-Management ab, einschließlich fein abgestufter Zugriffskontrolle, Schema-Versionierung zur Wahrung der Abwärtskompatibilität und Echtzeit-Updates via Subscriptions. Sie enthält zudem Traffic-Management-Tools zum Schutz von Serverressourcen, wie z. B. die Begrenzung der Abfragekomplexität und Request-Rate-Limiting. Entwicklung und Observability werden durch AST-Analysewerkzeuge, Execution-Tracing und spezialisierte Test-Utilities zur Verifizierung von Batch-Loading unterstützt.
Groups multiple requests for related data by key and dispatches them as a single batched fetch.