У меня есть @BeforeInsert()
слушатель в моей Post
сущности. Предполагается, что перед вставкой слушатель создает уникальный столбец для столбца slug
.
Например:
export class Post extends BaseEntity {
@PrimaryGeneratedColumn()
id: number
@Column()
title: string
@Column()
slug: string
@BeforeInsert()
private updateSlug() {
this.slug = slugify(this.title)
// I will need to access the database to check whether the same slug has existsed already or not.
// How do I access the database in this listener method?
}
}
Поскольку столбец slug
должен быть уникальным, мне придется проверить в базе данных, чтобы узнать, существует ли такой же слаг уже. Если слаг уже существует, мне нужно добавить число за слагом, например hello-word-1
.
Однако для этого мне потребуется доступ к репозиторию Post
сущности в классе сущностей Post
, прежде чем я смогу получить доступ к базе данных. Но я не понимаю, как я могу внедрить репозиторий в свой класс сущностей Post
для доступа к базе данных для этой цели.
Как мне подойти к этой проблеме?