import { Driver } from "../../driver/Driver"; import { RelationIdLoadResult } from "../relation-id/RelationIdLoadResult"; import { ObjectLiteral } from "../../common/ObjectLiteral"; import { Alias } from "../Alias"; import { RelationCountLoadResult } from "../relation-count/RelationCountLoadResult"; import { QueryExpressionMap } from "../QueryExpressionMap"; import { EntityMetadata } from "../../metadata/EntityMetadata"; import { QueryRunner } from "../.."; /** * Transforms raw sql results returned from the database into entity object. * Entity is constructed based on its entity metadata. */ export declare class RawSqlResultsToEntityTransformer { protected expressionMap: QueryExpressionMap; protected driver: Driver; protected rawRelationIdResults: RelationIdLoadResult[]; protected rawRelationCountResults: RelationCountLoadResult[]; protected queryRunner?: QueryRunner | undefined; constructor(expressionMap: QueryExpressionMap, driver: Driver, rawRelationIdResults: RelationIdLoadResult[], rawRelationCountResults: RelationCountLoadResult[], queryRunner?: QueryRunner | undefined); /** * Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated * we need to group our result and we must have some unique id (primary key in our case) */ transform(rawResults: any[], alias: Alias): any[]; /** * Groups given raw results by ids of given alias. */ protected group(rawResults: any[], alias: Alias): Map; /** * Transforms set of data results into single entity. */ protected transformRawResultsGroup(rawResults: any[], alias: Alias): ObjectLiteral | undefined; protected transformColumns(rawResults: any[], alias: Alias, entity: ObjectLiteral, metadata: EntityMetadata): boolean; /** * Transforms joined entities in the given raw results by a given alias and stores to the given (parent) entity */ protected transformJoins(rawResults: any[], entity: ObjectLiteral, alias: Alias, metadata: EntityMetadata): boolean; protected transformRelationIds(rawSqlResults: any[], alias: Alias, entity: ObjectLiteral, metadata: EntityMetadata): boolean; protected transformRelationCounts(rawSqlResults: any[], alias: Alias, entity: ObjectLiteral): boolean; private createValueMapFromJoinColumns; private extractEntityPrimaryIds; }