`repository.create` удаляет значения столбцов, которые являются массивами и внедренными объектами - PullRequest
0 голосов
/ 21 февраля 2019

Учитывая простую Foo сущность, которая, в свою очередь, содержит коллекцию Bar объектов в mongodb

проблема возникает , только если столбец является одновременно массивом и внедренным объектом .

@Entity()
export class Foo {
  @ObjectIdColumn()
  public id: ObjectID;

  @Column()
  public simple: string;

  @Column(type => Bar)
  public collection: Bar[];
}

export class Bar {
  @Column()
  value: boolean;
}

repository.create преобразует необработанное значение

{
  "simple": "string",
  "collection": [
    { "value": true },
    { "value": false }
  ]
}

в просто

{ "simple": "string" }

Я просто взял это из https://github.com/typeorm/typeorm/issues/2342, но то же самоечто-то происходит на моем конце

1 Ответ

0 голосов
/ 21 февраля 2019

По-видимому, это ошибка в typeorm.В качестве обходного пути вы можете установить коллекцию вручную, пока проблема не будет решена:

async createFoo(createFooDto) {
  const newFoo = await this.repository.create(createFooDto);
  // TODO: Remove when https://github.com/typeorm/typeorm/issues/1980 is solved
  newFoo.collection = createFooDto.collection;
  this.repository.save(newFoo);
}

Если это регрессия (она работала), вы можете попытаться понизить typeorm до тех пор, пока она не будет исправлена.

...