Как удалить элементы от старой связи в typeorm postgres при manytomany?

Если сохранять Post в помощью .save(), то элементы от старой связи остаются в таблице Tag, не удаляются:

// ================ Service ==================== //
const post = new Post();
post.title = createPostDto.title;
post.category = createPostDto.category;
post.content = createPostDto.content;

const tags = createPostDto.tags.split(',').map((tag) => {
  const tagEntity = new Tag();
  tagEntity.tag = tag.trim();
  return tagEntity;
});

post.tags = tags;

const postRes = await this.postRepository.save(post);

// ============= Post Entity ================= //
@Entity()
export class Post {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  title: string;

  @Column()
  category: string;

  @Column()
  content: string;

  @Column({ default: '' })
  imageUrl: string;

  @ManyToOne(() => User, (user) => user.posts)
  user: Relation<User>;

  @ManyToMany(() => Tag, (tag) => tag.posts, {
    cascade: true,
  })
  @JoinTable()
  tags: Relation<Tag[]>;

  @Column({ default: false })
  isFeatured: boolean;

  // **
  @CreateDateColumn()
  createdAt: string;

  @UpdateDateColumn()
  updatedAt: string;
}

// ======================= Tag Entity ==================== //
@Entity()
export class Tag {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  tag: string;

  @ManyToMany(() => Post, (post) => post.tags, {
    orphanedRowAction: 'delete',
  })
  posts: Relation<Post[]>;
}

Пробовал через querybuilder, тоже самое, onDelete ничего не меняет. Они не должны удаляться? Связи нет, почему они остаются? Как удалить в Typeorm при ManyToMany элементы от старой связи в таблице, когда формируется новая связь при обновлении?


Ответы (0 шт):