全书目录

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

第六章:Repository —— 某一类楼的专属施工班组

1 分钟 170 字 第 438 / 962 个阅读单元

Repository 是 TypeORM 里最实用的日常入口之一。

官方心智很准确:

text
Repository = 只服务某个具体实体的施工班组
EntityManager = 全工地通用调度室

例如:

ts
const userRepository = dataSource.getRepository(User);

const user = await userRepository.findOneBy({ id: 1 });

user!.nickname = "new-name";
await userRepository.save(user!);

你可以把它理解成:

text
UserRepository
= 专门负责 users 这栋楼的施工班组

它最常做的是:

  • create
  • save
  • find
  • findOne
  • findBy
  • update
  • delete
  • softDelete
  • count
#一个小片段:创建和查询
ts
const user = userRepository.create({
  email: "lin@city.dev",
  nickname: "Lin",
});

await userRepository.save(user);

const activeUsers = await userRepository.findBy({
  isActive: true,
});
#createsave 不要混

很多新手会以为:

text
create = 已经插入数据库

不是。

text
create = 先在内存里组装一张待施工蓝图
save   = 才是真正下场施工