#node.js #typescript #nestjs #typeorm
Вопрос:
У меня есть таблица с именем «роли», в которой я определяю все роли. Он содержит два столбца «идентификатор», который является uuid, и «имя», которое является уникальным именем роли.
Каждый раз, когда я создаю пользователя, я хочу установить в качестве значения по умолчанию роль «пользователь», которая будет извлекаться по ее уникальному имени и сохранять его идентификатор роли в таблице «пользователь».
Вот мой код :
export class User extends Common {
@Column({ name: 'email' })
email: string;
@Column({ name: 'first_name' })
firstName: string;
@Column({ name: 'last_name' })
lastName: string;
@Column({ name: 'password' })
password: string;
@Column({ name: 'role_id' })
roleId: string;
@OneToMany(() => Role, (role) => role.name)
@JoinColumn({ name: 'role_id' })
role: Role;
}
Я не могу найти в документации Typeorm, как установить по умолчанию значение select, где результат соответствует моему состоянию.
Что-то вроде этого
@Column({ name: 'role_id', default: Role.findOne({..}).id })
roleId: string;
Возможно ли это вообще ?
В случае, если это невозможно, могу ли я установить его, получив роль в операторе @BeforeInsert, как это
@BeforeInsert()
public async setDefaultRoleToUser() {
const role = Role.findOne({ ... });
this.role = role.id;
}
В случае, если оба метода работают, какой из них будет наиболее оптимальным ?
С уважением,
Комментарии:
1. Ни у кого нет идеи ? :/