Как удалить элементы от старой связи в 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 элементы от старой связи в таблице, когда формируется новая связь при обновлении?