在级联上更新子级时更新父实体

时间:2020-03-09 12:27:01

标签: typeorm

我正在寻找一种在OneToMany关系上使用级联更新子级实体时更新父级实体的方法。

实体

@Entity()
export class Activity {

    @PrimaryGeneratedColumn()
    id: number;

    @CreateDateColumn()
    createAt: Date;

    @UpdateDateColumn()
    updatedAt: Date;

    @OneToMany(
        type => ActivityTranslation,
        activity_translation => activity_translation.activity,
        {
            cascade: true
        }
    )
    activity_translations: ActivityTranslation[]

}
@Entity()
export class ActivityTranslation {

    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    name: string;

    @CreateDateColumn()
    createAt: Date;

    @UpdateDateColumn()
    updatedAt: Date;

    @ManyToOne(
        type => Activity,
        activity => activity.activity_translations,
        {
            onUpdate: 'CASCADE'
        }
    )
    activity: Activity

}

存储库

    public async updateActivityTranslation(activity_translation: ActivityTranslationModel): Promise<ActivityTranslationModel> {
        try {
            delete activity_translation.updatedAt;
            return this.repository.save(activity_translation);
        } catch {
            throw new ServerError("Unable to update activity translation")
        }
    }

控制器

        await this.activityTranslationRepository.updateActivityTranslation(activity_translations[i]);

activity_translation已按预期更新。 保存activity_translation实体时,我想更新活动实体的updatedAt列。

我在GitHub和StackOverflow上尝试了有关级联问题的所有内容。

谢谢您的帮助。

0 个答案:

没有答案