#误区 1:Entity 就是系统里的万能模型
不是。
Entity 是数据库施工蓝图
不是 DTO
不是 ViewModel
不是接口返回的唯一形态#误区 2:create() 就已经写库了
不是。
create = 在内存里组装对象
save = 才是落库施工#误区 3:有了 ORM 就不用懂 SQL
不对。
你还是必须理解:
- 主键 / 外键
- 索引
- join
- 事务
- 查询代价
- 数据库约束
ORM 只是帮你组织施工,不会替你理解地基。
#误区 4:关系越 eager 越方便
短期方便,长期经常变成:
- 过度取数
- N+1
- 性能问题定位困难
关系加载应该按业务需求拿,不是“怕麻烦就全带”。
#误区 5:事务里继续用全局 repository 没关系
这是典型坑。
事务里的操作必须走事务提供的 manager / repository否则你以为在一个封闭施工区里,实际已经有人偷偷从旁门进出了。
#误区 6:synchronize 可以长期替代 migration
非常危险。
sychronize 更像原型期自动施工。
线上正式环境要靠 migration 管结构改造历史。
#误区 7:QueryBuilder 比 Repository 高级,所以什么都用 QueryBuilder
错。
工具不是越重越专业。
简单查询 -> Repository
复杂查询 -> QueryBuilder这样才稳。
#误区 8:TypeORM 和 Prisma 只是语法不同
说浅了。
它们背后的工作流心智明显不同:
- TypeORM 更 ORM 施工队
- Prisma 更 schema-first 规划院
选型差异不只是 API 手感。