Full ORMs
Map classes to tables and manage the objects for you: one object per row in a session, change tracking, saving a whole unit of work at once, lazy loading and migrations.
How they work
A full ORM keeps state between your code and the database. A Hibernate session (its persistence context) and an EF Core DbContext (its change tracker) both track every entity loaded through them, and when the session flushes or SaveChanges runs, the ORM works out the INSERT, UPDATE and DELETE statements for whatever changed. SQLAlchemy’s ORM does the same with a unit of work built on its Core layer, and Rails’ Active Record puts load and save methods on each model object instead.
That buys a lot of saved code for applications with rich domain models and many forms, and the price is magic you have to understand: lazy relations that fire extra queries, automatic flushes before queries, and sessions that must not live too long. Prisma sits at the light end of this kind. It generates a typed client from a schema file and handles relations and migrations, but returns plain objects with no session or change tracking.
Technologies
What all object-relational mapping have in common →
Tortoise ORMOpen sourceAn async-native Python ORM with a Django-style API: models as classes, `await Model.filter(...)` queries, and built-in migrations since 1.0.| Open source | Rails core team | MIT | 2026-10-08 | |
| Open source | Microsoft (.NET Foundation) | MIT | 2026-10-08 | |
| Open source | Hibernate project (Commonhaus Foundation) | Apache 2.0 since 7.0 (LGPL 2.1 before) | 2026-10-08 | |
| Open source | Prisma | Apache 2.0 | 2026-10-08 | |
| Open source | SQLAlchemy authors and contributors (led by Mike Bayer) | MIT | 2026-10-08 | |
Tortoise ORM | Open source | Tortoise ORM contributors | Apache 2.0 | 2026-10-09 |
Sources
- Hibernate ORM 7.4: A Short Guide to Hibernate 7 (persistence context, dirty checking, flush)
- Microsoft Learn: Change Tracking in EF Core
- SQLAlchemy 2.1 docs: Overview (Core and ORM; the unit of work pattern)
- Rails Guides: Active Record Basics
- Prisma docs: Is Prisma ORM an ORM? (Data Mapper, plain JavaScript objects)