What mikro-orm/mikro-orm shipped
Written by FoxPlug from public releases; not affiliated with Mikro-orm. An automatic summary of the public release, pull request and commit data of github.com/mikro-orm/mikro-orm. Mikro-orm did not write it and does not use or endorse FoxPlug. Every line links to the public change it describes.
Get a weekly update like this for your product, free
Week of September 21, 2026
What shipped
- Filter by properties of any polymorphic relation target, resolving conditions against all targets that define the queried properties instead of just the first. Pull request #8327
- Order by properties of any polymorphic relation target, with each ordered property resolved against the targets that define it. Pull request #8333
- Cache Kysely result maps and table name lookups to avoid rebuilding field and relation maps on every query result with certain naming strategies. Pull request #8337
- Add per-entity
forceUndefinedoption via@Entity(),EntitySchema, anddefineEntity()to override the global ORM setting. Pull request #8325 - Apply target filters when populating polymorphic relations with joined or balanced strategy, respecting soft-delete and other filters. Pull request #8330
- Fix STI bugs where subtypes mapping the same property to different columns would hydrate as null when loading through the root. Pull request #8340
- Throw an error in MongoDB when relation conditions that require a join are used, since MongoDB has no joins. Pull request #8332
- Respect
distinct()anddistinctOn()inqb.getCount()to return correct counts for deduplicated queries. Pull request #8312 - Respect property returning hints on updates and upserts to keep managed entities in sync with database values. Pull request #8299
- Restrict TPT identity inserts to the owning table for table-per-type upserts with supplied primary keys in SQL Server. Pull request #8291
Why it matters
This week focused on polymorphic relations, with new filtering and ordering capabilities across all targets. Several fixes address data consistency during upserts, especially with heterogeneous batches and transaction handling. Improved cache performance and error handling round out the release.
Changelog entry
- feat(core): filter by properties of any polymorphic relation target Pull request #8327
- feat(core): order by properties of any polymorphic relation target Pull request #8333
- perf(sql): cache kysely result maps and table name lookups Pull request #8337
- feat(core): add per-entity
forceUndefinedoption Pull request #8325 - fix(sql): apply target filters when populating polymorphic relations Pull request #8330
- fix(sql): handle STI subtypes with conflicting property columns and types Pull request #8340
- fix(mongodb): throw on relation conditions that need a join Pull request #8332
- fix(sql): do not convert custom types twice in
em.countBy()Pull request #8342 - fix(sql): respect
distinct()anddistinctOn()inqb.getCount()Pull request #8312 - fix(sql): keep rows when ordering by polymorphic relation targets Pull request #8334
- fix(sql): respect property returning hints on updates and upserts Pull request #8299
- fix(mssql): restrict TPT identity inserts to the owning table Pull request #8291
- fix(core): allow falsy values in concurrency checks Pull request #8318
- fix(core): preserve concurrency values in batch lock checks Pull request #8317
- fix(core): keep entity identity for relations using
targetKeyPull request #8323
This week: filter and order by properties of any polymorphic relation target, cache Kysely result maps, add per-entity forceUndefined, fix STI and upsert consistency issues, respect returning hints on updates.
Mikro-orm 6.4 week: polymorphic relations now let you filter and order by properties across all target types, not just the first. Improved Kysely performance with result map caching. Added per-entity forceUndefined options. Fixed data consistency for STI subtypes and heterogeneous upserts. Better handling of returning hints on updates and upserts.
Week of September 14, 2026
What shipped
- Released v7.2.1 with fixes for property name escaping in generated code, populated relations after cache hits, and legacy MSSQL column type mapping. Release
- Fixed remaining positions where property names were not properly escaped in compiled hydrators and comparators, following up on a previous incomplete fix. Pull request #8289
- Added support for legacy MSSQL
ntextandimagecolumn types, which previously fell back to unknown type instead of mapping to string. Pull request #8288 - Fixed properties marked with
returning: trueon INSERT statements to properly sync managed entities with their persisted database values after flush. Pull request #8277 - Fixed raw query parameters containing special characters like question marks being incorrectly inlined, causing knex parsing errors. Pull request #8281
- Fixed returning clause being incorrectly emitted inside update sub-queries when native updates traverse relations. Pull request #8283
- Fixed filtered many-to-many references being incorrectly modified during persistence operations. Pull request #8273
Why it matters
This release addresses critical bugs in query execution, type mapping, and entity synchronization that could cause data inconsistency or incorrect query results. The fixes ensure properties are properly escaped in generated code, returning clauses work correctly across different query types, and legacy database column types are handled properly.
Changelog entry
- 7.2.1 (2026-09-19): Escape remaining property names in generated code, keep populated relations clean after result cache hits, map legacy ntext and image column types in MSSQL Release
- core: escape property names in ObjectHydrator createReference options and inline embeddable child names Pull request #8289
- mssql: map legacy ntext and image column types instead of falling back to UnknownType Pull request #8288
- sql: respect property returning hints on INSERT statements to maintain entity synchronization Pull request #8277
- query-builder: do not inline raw query parameters, pass them untouched to knex Pull request #8281
- sql: do not emit returning clause inside update sub-query when nativeUpdate traverses relations Pull request #8283
- sql: preserve filtered many-to-many references during persistence Pull request #8273
v7.2.1 is out. Fixes for property escaping in generated code, MSSQL legacy column type mapping, returning clause handling, and many-to-many reference preservation.
v7.2.1 released with several important fixes: property names are now properly escaped in generated hydrators and comparators, MSSQL legacy ntext and image types are correctly mapped, INSERT returning clauses properly sync entities with database values, raw query parameters with special characters no longer cause parsing errors, and filtered many-to-many references are preserved correctly.