7.2.9 (2026-11-12)
Bug Fixes
- cli: resolve TS loaders from the project root (#8669) (1b655f9)
- core: accept
FindOptions<T>typed options in genericfind()wrappers (#8662) (932227e), closes #8655 - core: clean up the serialization context when
toObject()orserialize()throws (#8636) (70ce74e) - core: detect in-place mutations of Date properties on loaded entities (#8675) (2a02c9f), closes #4391
- core: do not propagate STI sibling property checks to other subtypes (#8688) (b0b2303), closes #8687
- core: don't re-query empty inverse 1:1 relations on repeated populate (#8627) (b074921), closes #8624
- core: fill extra columns of a composite FK referencing non-PK target columns (#8646) (14737a2), closes #8641 #8640
- core: keep unrefreshed properties in the snapshot on partial refresh (#8633) (254f21f), closes #8632
- core: mark entities managed when merged via em.merge() (#8666) (1969694)
- core: reject unparseable date strings with ValidationError in assign() (#8658) (092e0ba), closes #8656
- core: reuse managed entity in
findOnewhenfieldsname an inline embeddable (#8626) (6b79fad), closes #8625 - core: store the database value of the FK in the snapshot set during hydration (#8661) (a868c92), closes #8657
- core: treat copies of a custom type instance as the same type in polymorphic embeddables (#8651) (10a0998), closes #8650
- core: write a scalar composite FK value to the column referencing the target PK (#8645) (c9cbb76), closes #8644 #7764 #8640 #8641
- mongo: map property names to field names in the partial index
where(#8635) (1dd8144), closes #7593 - mongo: return the stored version from
em.upsert()andem.upsertMany()(#8623) (3af6998), closes #8620 - mssql: raise the default request timeout to 60s (#8647) (7ac45dc)
- mysql: unescape quotes in introspected check constraint expressions (#8639) (9481b56), closes #8485
- oracledb: keep fractional seconds on datetime values returned via OUT binds (#8621) (0ab4a51)
- postgres: don't diff a check over a list of values as an enum (#8653) (64bd76a), closes #8652
- schema: do not diff enum items of a non-enum STI discriminator column (#8689) (e972fbd)
- sql: bump the version property when
upsert()updates an existing row (#8620) (303b051) - sql: compare bigint defaults by value (#8631) (4c740be), closes #8132 #8132 #7796
- sql: merge every column of a composite FK on upsert conflict (#8648) (0a2d093), closes #8643 #8642
- sql: reject non-string order directions in
orderBy(#8680) (87baf9b) - sql: run joined
qb.update()andqb.delete()as write queries inexecute()(#8628) (a70a72a) - sql: skip generated columns in
em.clone()andqb.insertFrom()(#8638) (1ec3972)
Performance Improvements
- core: avoid deopt loop when cloning query builder state (#8686) (20ea3cb)
- core: keep scalar properties as plain data properties (#8671) (e312571), closes #6982
- core: skip re-snapshotting entities freshly mapped via em.map() (#8676) (e5e655c)
- core: use Object.keys in getObjectQueryKeys (#8672) (c6c1903)
- postgres: escape string literals in linear time (#8659) (2929460), closes #8001