Entidades
Como discutimos anteriormente, o TypeORM se encarrega de mapear o paradigma Orientado a Objetos para o Modelo Relacional de banco de dados. Para tanto, precisamos registrar as entidades do nosso programa.
Para facilitar o procesos, colocaremos todas as entidades numa pasta chamada entity
:
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";
@Entity()
export class Musica {
@PrimaryGeneratedColumn()
private _id!: number;
@Column({ name: "nome" })
private _nome: string;
@Column({ name: "duracao" })
private _duracao: number;
constructor(nome: string, duracao: number) {
this._nome = nome;
this._duracao = duracao;
}
get id(): number {
return this._id;
}
get nome(): string {
return this._nome;
}
set nome(nome: string) {
if (!nome) throw new Error("Nome não pode ser vazio.");
this._nome = nome;
}
get duracao(): number {
return this._duracao;
}
set duracao(duracao: number) {
if (duracao <= 0) throw new Error("Duração deve ser positiva.");
this._duracao = duracao;
}
}
O TypeORM tem maior compatibilidade com atributos públicos. No entanto, para padronizar, vamos manter a abordagem ideal de OO. Para consultar os tipos de outras informações sobre entidades no TypeORM, clique aqui e consulte a documentação.