#javascript #mysql #typescript #typeorm
#javascript #mysql #typescript #typeorm
Вопрос:
У меня есть две сущности с использованием typeorm, как показано ниже:
user.entity
@Column({array: true})
@OneToMany(() => Repository, repo => repo.user)
repositories: Repository[];
repository.entity
@ManyToOne(() => User, user => user.repositories)
user: User;
почему, когда я запускаю свое приложение, из моего mysql выдает ошибку:
Data type "Array" in "User.repositories" is not supported by "mysql" database
я пытаюсь добавить @Column({array: true})
, но безуспешно, я удаляю всю базу данных, но это все равно не работает
Ответ №1:
@Column("text", {
array: true
})
repositories: Repository[];
Это решит вашу проблему, но убедитесь, что вам действительно нужно array
поле в OneToMany
отношении.
@OneToMany(() => Repository, repo => repo.user)
repositories: Repository[];
Я думаю, это все, что вам нужно. Смотрите отношения «Многие к одному» / «один ко многим»
Комментарии:
1. да, потому что моему пользователю нужно иметь более одного объекта репозитория, я ошибаюсь?
2. Да, я думаю, вам не хватает некоторых понятий отношения «один ко многим». Например: у пользователя есть фотографии: @OneToMany (() => Photo, photo => photo.user) фотографии: Photo [] означает, что в вашей таблице фотографий есть идентификатор пользователя, и этого достаточно. Здесь вам не нужен @Column(). См. Документы