全书目录

第二十四篇:TypeORM 完全指南 —— 数据映射施工队宇宙

第四章:Entity 与 Column —— 施工蓝图和构件参数

1 分钟 255 字 第 436 / 962 个阅读单元

Entity 是 TypeORM 的核心起点。

你可以把它理解成:

  • 一张建筑蓝图
  • 对应数据库里的一张表
  • 业务世界里一种可持久化的对象模板
ts
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;
}

这段代码表达的是:

text
User 实体
  ├── 对应 users 表
  ├── id 是主键,自增
  ├── email 唯一
  ├── nickname 有长度约束
  ├── isActive 有默认值
  ├── createdAt 自动记录创建时间
  └── updatedAt 自动记录更新时间
#@Column() 的心智不要想浅了

它不是“一个装饰器而已”。

它真正做的是:

  • 声明这个属性要落到数据库
  • 声明落地时的列类型和约束
  • 让 TypeORM 知道如何读写和映射

所以:

text
类属性 != 自动就是数据库列
只有被映射的属性才是施工蓝图的一部分
#初学者最该记住的一句

Entity 不是 DTO,不是 API 入参对象,不是前端返回模型。

它是:

数据库施工蓝图。

这句话能帮你避免很多“所有对象都混成一团”的灾难。