40-1 Ajouter une propriété utilisateur
Assumons qu'une issue peut être associée à un utilisateur comme un "responsable" de l'issue. Pour cela, dans une issue, il nous faut une propriété responsableId et responsable. Puis, dans l'entité utilisateur, une propriété issues.
-
Modifier l'issue pour ajouter la propriété
responsablesrc/issues/entities/issue.entity.ts@Entity('issues')
export class Issue extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
projetId: number;
@ManyToOne(() => Projet, (projet) => projet.issues, { onDelete: 'CASCADE' })
projet: Projet;
responsable: Utilisateur;
//... -
Modifier l'entité utilisateur pour y ajouter une propriété
issuessrc/utilisateurs/entities/utilisateur.entity.ts@Entity('utilisateurs')
export class Utilisateur extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column({ type: 'varchar', length: 255 })
prenom: string;
@Column({ type: 'varchar', length: 255 })
nom: string;
@Column({ unique: true, type: 'varchar', length: 255 })
courriel: string;
@Column({ unique: true, type: 'varchar', length: 32 })
nomUtilisateur: string;
@Column({ type: 'varchar', length: 255 })
@Exclude()
password: string;
issues: Issue[]; -
Établir la relation
OneToManyetManyToOneen plus de préciser le nom de la colonne servant de clé étrangère dansIssuesrc/issues/entities/issue.entity.ts//...
@ManyToOne(() => Utilisateur, (utilisateur) => utilisateur.issues)
@JoinColumn({ name: 'responsable_id' })
responsable: Utilisateur;
//...src/utilisateurs/entities/utilisateur.entity.ts//...
@OneToMany(() => Issue, (issue) => issue.responsable)
issues: Issue[];
//...
Le tout devrait avoir créé dans la bd la colonne responsable_id dans la table issues.
