diff --git a/src/metadata/EntityMetadata.ts b/src/metadata/EntityMetadata.ts index eba5c5822e..82fdb32586 100644 --- a/src/metadata/EntityMetadata.ts +++ b/src/metadata/EntityMetadata.ts @@ -849,7 +849,11 @@ export class EntityMetadata { ): EntityMetadata { const childEntityMetadata = relation.inverseEntityMetadata.childEntityMetadatas.find( - (metadata) => metadata.target === value.constructor, + (metadata) => + metadata.target === value.constructor || + (metadata.discriminatorColumn && + value[metadata.discriminatorColumn.propertyName] === + metadata.discriminatorValue), ) return childEntityMetadata ? childEntityMetadata