Entity 是 TypeORM 的核心起点。
你可以把它理解成:
- 一张建筑蓝图
- 对应数据库里的一张表
- 业务世界里一种可持久化的对象模板
import {
Column,
CreateDateColumn,
Entity,
PrimaryGeneratedColumn,
UpdateDateColumn,
} from "typeorm";
@Entity({ name: "users" })
export class User {
@PrimaryGeneratedColumn()
id!: number;
@Column({ unique: true })
email!: string;
@Column({ length: 50 })
nickname!: string;
@Column({ default: true })
isActive!: boolean;
@CreateDateColumn()
createdAt!: Date;
@UpdateDateColumn()
updatedAt!: Date;
}这段代码表达的是:
User 实体
├── 对应 users 表
├── id 是主键,自增
├── email 唯一
├── nickname 有长度约束
├── isActive 有默认值
├── createdAt 自动记录创建时间
└── updatedAt 自动记录更新时间#@Column() 的心智不要想浅了
它不是“一个装饰器而已”。
它真正做的是:
- 声明这个属性要落到数据库
- 声明落地时的列类型和约束
- 让 TypeORM 知道如何读写和映射
所以:
类属性 != 自动就是数据库列
只有被映射的属性才是施工蓝图的一部分#初学者最该记住的一句
Entity 不是 DTO,不是 API 入参对象,不是前端返回模型。
它是:
数据库施工蓝图。
这句话能帮你避免很多“所有对象都混成一团”的灾难。