TypeORM中在where条件使用嵌套关系时自动生成JOIN是否为预期特性?
TypeORM中在where条件使用嵌套关系时自动生成JOIN是否为预期特性?
这完全是TypeORM 0.3.x版本的预期特性哦,不用担心是未文档化的副作用~
TypeORM的查询构建逻辑(包括findOptions API)核心设计目标之一就是帮开发者简化复杂的SQL编写,其中就包含了智能分析关联关系并自动生成JOIN语句的能力。举个例子,当你在where条件里写类似{ author: { id: 123 } }这种嵌套关联的查询条件时,TypeORM会自动识别到需要关联author表,无需你手动在join选项里声明,也不用提前在relations里配置(当然,如果之后需要加载这个关联的数据,还是得在relations里指定才行)。
至于你说在文档里没找到明确描述,其实这个特性属于查询构建的“隐式基础能力”,很多现代ORM框架都会做这类设计来降低开发成本。你可以再去翻TypeORM 0.3.x的findOptions相关文档章节,虽然没有单独把“自动生成JOIN”作为一个独立特性大篇幅讲解,但在描述嵌套关联查询的部分,其实已经隐含了这个逻辑——毕竟要支持嵌套条件查询,必然要依赖自动JOIN来关联对应表。
备注:内容来源于stack exchange,提问作者swimmer
相关产品推荐
相关产品推荐

