Запрос на обновление ManyToMany NestJS - PullRequest
0 голосов
/ 22 сентября 2019

Я довольно новичок в кодировании, я использую nestjs для создания приложения вместе с PostegreSql. Каждый раз, когда я пытаюсь что-то обновить, я получаю сообщение об ошибке.

У меня есть сущности с отношением @ManyToMany, если яудалить эти отношения обновление работает должным образом.Но если я разрешу отношение @ManyToMany, оно не будет работать

Сообщение об ошибке:

[Nest] 46879   - 09/21/2019, 7:38 PM   [ExceptionsHandler] column "entrainementsId" of relation "entrainements" does not exist +639401ms
[0] QueryFailedError: column "entrainementsId" of relation "entrainements" does not exist
[0]     at new QueryFailedError (/Users/damien/Desktop/projetAngular/rowing/rowing-back-end/node_modules/typeorm/error/QueryFailedError.js:11:28)
[0]     at Query.callback (/Users/damien/Desktop/projetAngular/rowing/rowing-back-end/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:176:38)
[0]     at Query.handleError (/Users/damien/Desktop/projetAngular/rowing/rowing-back-end/node_modules/pg/lib/query.js:142:17)
[0]     at Connection.connectedErrorMessageHandler (/Users/damien/Desktop/projetAngular/rowing/rowing-back-end/node_modules/pg/lib/client.js:194:17)
[0]     at Connection.emit (events.js:197:13)
[0]     at Socket.<anonymous> (/Users/damien/Desktop/projetAngular/rowing/rowing-back-end/node_modules/pg/lib/connection.js:126:12)
[0]     at Socket.emit (events.js:197:13)
[0]     at addChunk (_stream_readable.js:288:12)
[0]     at readableAddChunk (_stream_readable.js:269:11)
[0]     at Socket.Readable.push (_stream_readable.js:224:10)

EntrainementEntity


@Entity()
export class Entrainements extends HistoriqueEntity {
    @Column()
    name: string;

    @ManyToMany( () => Categories, {cascade: true} )
    @JoinTable()
    category: Categories[];

    @Column()
    distance: number;

    @Column()
    start: number;

    @Column()
    comments: string;

    @Column()
    warmUp: string;

    @Column()
    cadence: string;

    @ManyToOne(type => Season, season => season.name)
    season: Season;

    @Column()
    rest: string;

    @ManyToOne(type => Roles, role => role.entrainements)
    role: Roles;

    @ManyToMany( () => Exercices, {cascade: true} )
    @JoinTable()
    exercices: Exercices[];
}

ExercicesEntity:

@Entity()
export class Exercices extends HistoriqueEntity {
    @Column()
    name: string;

    @Column()
    description: string;

    @ManyToOne(type => TypeExercices, typeExercices => typeExercices.exercices)
    typeExercices: TypeExercices;

    @ManyToMany(type => Entrainements, entrainements => entrainements.exercices)
    entrainements: Entrainements[];
}

CategoriesEntity


@Entity()
export class Categories extends HistoriqueEntity {
    @Column()
    name: string;

    @ManyToMany(type => Entrainements, entrainements => entrainements.category)
    entrainements: Entrainements[];

}

EntrainementControlleur

    @Put(':id/update')
    async update(@Param('id') id, @Body() entrainementsData: Entrainements): Promise<UpdateResult> {
        entrainementsData.id = Number(id);
        return this.service.updateTraining(entrainementsData);
    }

EntrainementsService

   async updateTraining(entrainement: Entrainements): Promise<UpdateResult> {
        return await this.entrainementsRepository.update(entrainement.id, entrainement);
    }

1 Ответ

0 голосов
/ 23 сентября 2019

Вы должны определить противоположную привязку:

@ManyToMany( () => Exercices, (exercices) => exercices.entrainements, {cascade: true} )
@JoinTable()
exercices: Exercices[];
...