SuperAPI AI 工具集

api-database-typeorm

编程与开发

查看项目

更新于 10-15 19:51

技能介绍

用途:该技能面向使用 TypeORM 进行装饰器式数据库访问的 TypeScript 项目,实体通过 @Entity、@Column、@PrimaryGeneratedColumn 等装饰器映射为类。适合需要 QueryBuilder 复杂查询、类式 ORM 以及基于依赖注入框架的项目;不适合 schema-first 工作流、追求无运行时装饰器的全类型安全查询,以及冷启动敏感的边缘或无服务器场景。

主要能力:涵盖 DataSource 配置与实体注册、实体与列类型定义、OneToOne/OneToMany/ManyToOne/ManyToMany 关系、仓库 CRUD 与 QueryBuilder、迁移生成与执行、事务处理,以及 save() 与 insert()/update() 的性能差异。

关键规则:生产环境禁止使用 synchronize: true,应使用迁移;已知操作类型时优先用 insert()/update() 而非 save(),因 save() 总会先执行 SELECT;事务内必须使用传入的 manager 或 queryRunner.manager,不得使用全局 entity manager 或 repository;关系需在拥有侧显式使用 @JoinColumn(),ManyToMany 一侧使用 @JoinTable()。QueryBuilder 中避免字符串拼接以防 SQL 注入,分页用 take()/skip() 而非 limit()/offset(),eager 关系仅对 find* 方法有效,事务后必须 release QueryRunner。

使用方式:先配置并导出 DataSource 单例,再定义实体与关系,通过 repository 或 QueryBuilder 操作数据,用 CLI 命令生成与运行迁移,如 npx typeorm-ts-node-esm migration:run -d ./src/data-source.ts。

限制:部分细节与示例资源以官方文档为准,本资料未提供收费与平台信息。