Upadate ManyToOne typeorm - PullRequest
       6

Upadate ManyToOne typeorm

0 голосов
/ 29 октября 2019

Когда я пытаюсь обновить строку в таблице с отношением @ManytoONe, у меня возникает ошибка.

Я хочу обновить строку в EntrainementCalendar, которая имеет @ManytoONe с Entrainements

`

[Nest] 7601   - 10/29/2019, 1:31 PM   [ExceptionsHandler] insert or update on table "entrainement_calendar" violates foreign key constraint "FK_aaf717375f5f876e6618eaab1fc" +22019ms
[0] QueryFailedError: insert or update on table "entrainement_calendar" violates foreign key constraint "FK_aaf717375f5f876e6618eaab1fc"
[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)
`

Я пытался: - использовать каскад: true в отношении, но с @Put я получаю ошибку, - использовать каскад: true с @POST itобновить строку в таблице EntrainementCalendar, но создать новую в Entrainements

Первая сущность

@Entity()

export class EntrainementCalendar extends HistoriqueEntity {
    @Column()
    start: Date;
    @Column({nullable: true})
    end: Date;
    @Column()
    title: string;

    @ManyToOne( type => Entrainements, training => training.id, {persistence: false, onDelete: 'CASCADE', onUpdate: 'NO ACTION'})
    @JoinTable()
    training: Entrainements;

    @Column()
    draggable: boolean;
}

Вторая сущность



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

        @ManyToMany( () => Categories )
        @JoinTable()
        category: Categories[];

        @Column()
        distance: string;

        @Column({nullable: true})
        strokesStart: number;

        @Column({nullable: true})
        comments: string;

        @Column()
        warmUp: string;

        @Column({nullable: true})
        cadence: string;

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

        @Column()
        rest: string;

        @ManyToOne(type => Color, color => color.primary, {cascade: true})
        color: Color;

        @Column({nullable: true})
        start: Date;

        @Column({nullable: true})
        end: Date;

        @Column({nullable: true})
        draggable: boolean;

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

        @ManyToMany( () => Exercices )
        @JoinTable()
        exercices: Exercices[];
    }


    ```

    I would like the row `EntrainementCalendar` without creating a new one in `Entrainements`
...