Я использую класс-преобразователь> plainToClass
(entity, DTO) для сопоставления сущностей с DTO
Я также реализовал связанный шаблон transform.interceptor, описанный здесь .
Затем я использую @Expose()
для членов моего DTO. Это прекрасно работает, но у меня есть ограничение, мне нужно отобразить DTO членов в моем родительском DTO, а этого не происходит, см. Простой пример ниже
@Exclude()
export class ParentDTO{
@Expose()
pMember2 : string;
@Expose()
pMember2 : ChildDto[];
}
@Exclude()
export class ChildDTO{
@Expose()
cMember2 : string;
}
export class ParentEntity{
pMember1 : number;
pMember2 : string;
pMember3 : string;
pMember4
: Child[];
}
export class ChildEntity{
cMember1 : number;
cMember2 : string;
cMember3 : string;
}
Теперь, если я запускаю plainToClass(parentEntityFromDB, ParentDTO)
, я надеялся получить следующее
ParentDTO{
pMember2 : string;
pMember2 : ChildDto[];
}
Тем не менее, я получаю
ParentDTO{
pMember2 : string;
pMember2 : Child[]; //Including all original members
}
В основном plainToClass (entity, DTO) не сопоставляет автоматически элементы, соответствующие данному типу DTO.
Есть ли способ сделать это или это ограничение метода ??
Спасибо