gpt4 book ai didi

TypeORM - 连接表上的多对多 where 子句

转载 作者:行者123 更新时间:2023-12-03 16:14:35 24 4
gpt4 key购买 nike

我正在使用 Typeorm@0.2.5使用 MySql 驱动程序。
我有一个实体,MyEntity ,它与另一个实体具有多对多关系,RelEntity .因此,Typeorm 生成 PK 的数据透视表来创建关系。

我的问题来自需要找到所有 MyEntity使用 RelEntity.prop = mySearchKey 的 where 子句.

我不确定这是因为我缺少一些文档还是没有完全理解如何使用 Typeorm 来构建这个查询。

我相信我的 SQL 语句如下所示:

SELECT m.* FROM my_entity_table m 
LEFT JOIN my_rel_pivot_table mrp ON mrp.my_entity_id = m.id
LEFT JOIN rel_entity_table r ON r.id = mrp.rel_entity_id
WHERE r.id = {MY_VALUE_HERE}

但是,我不太确定如何将其转换为 Typeorm 查询。

我试过了:
this.entityRepo.find({
where: {
rel: myValue
}
});

我也试过:
this.entityRepo.find({
where: {
rel: { id: myValue}
}
});

但是,我收到以下错误: Unknown column 'MyEntity.myEntityId' in 'where clause'
有没有人以前遇到过这个问题,或者知道如何解决这个问题?

最佳答案

在 GitHub 上寻求帮助后,以下问题的答案是使用 QueryBuilder API。

可以这样做,例如:

const myEntities = await this.entityRepo.createQueryBuilder("entity")
.leftJoin("relEntity", "relEntity.id = :myId", {myId: myValue})
.getMany()

非常感谢 https://github.com/pleerock帮助我解决这个问题。

关于TypeORM - 连接表上的多对多 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50327383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com