typeorm {onDelete: "CASCADE"} 不起作用

问题描述 投票:0回答:1

我有以下实体:

@Entity()
export class FavoriteEntity {
  @PrimaryGeneratedColumn('uuid')
  id: string;

  @CreateDateColumn()
  createdAt: Date;

  @UpdateDateColumn()
  updatedAt: Date;

  @DeleteDateColumn()
  deletedAt: Date;

  @Column({ default: null })
  name: string;

  @ManyToOne(() => UserEntity, (user) => user.favorites)
  user!: UserEntity;

  @OneToMany(() => FavoriteHomeworkEntity, (favoriteHomework) => favoriteHomework.favorite)
  favoriteHomeworks!: Array<FavoriteHomeworkEntity>;

  homeworksCount: number;

  constructor(partial: Partial<FavoriteEntity>) {
    Object.assign(this, partial);
  }
}


@Entity()
export class FavoriteHomeworkEntity {
  @PrimaryGeneratedColumn('uuid')
  id: string;

  @CreateDateColumn()
  createdAt: Date;

  @UpdateDateColumn()
  updatedAt: Date;

  @DeleteDateColumn()
  deletedAt: Date;

  @ManyToOne(() => FavoriteEntity, (favorite) => favorite.favoriteHomeworks, {onDelete: "CASCADE"})
  favorite!: FavoriteEntity;

  @ManyToOne(() => HomeworkEntity, (homework) => homework.favoriteHomeworks)
  homework!: HomeworkEntity;

  constructor(partial: Partial<FavoriteHomeworkEntity>) {
    Object.assign(this, partial);
  }
}


我预计当我

softRemove
favorite
实体时,我也会删除它们所有的
favoriteHomeworks
。不幸的是它没有发生。谁能解释一下我做错了什么吗?

我预计当我

softRemove
favorite
实体时,我也会删除它们所有的
favoriteHomeworks
。不幸的是它没有发生。谁能解释一下我做错了什么吗?

postgresql nestjs typeorm
1个回答
0
投票

//userEntity
  @OneToMany(() => ProfileEntity, (profile) => profile.userId, {
    cascade: true,
  })
  profiles: ProfileEntity[];
  
  //ProfileEntity
    @ManyToOne(() => UserEntity, (user) => user.profiles, {
    createForeignKeyConstraints: false,
    onUpdate: 'CASCADE',
    onDelete: 'CASCADE',
  })
  
  //database profile  deleted_At
  default Expression : CURRENT_TIMESTAMP

 //users.repository
 async remove(id: number) {
  return this.usersRepository.softRemove(_.assign(new UserEntity(), { id 
 }));
  }

© www.soinside.com 2019 - 2024. All rights reserved.