“* 找不到别名。也许你忘了加入它?

"* alias was not found. Maybe you forgot to join it?" with skip and take and joins

提问人:Artem 提问时间:11/5/2023 最后编辑:Artem 更新时间:11/6/2023 访问量:38

问:

我使用查询生成器,并且在我的请求中几乎没有联接(通过使用)。由于连接,我需要使用 和 进行分页,因为 with 和 它不能满足我的需要。 所以,如果我使用并且请求工作正常,并且我没有任何例外。但是如果我使用并且我有(不知道为什么有两个引号,也许这是一个问题? sql查询调试显示普通查询,我可以在db中运行并且它可以工作。所以问题出在打字机方面......如果我删除连接,它可以与 和 一起使用。leftJoinAndMapManyskiptakeoffsetlimitoffsetlimitskiptake""User"" alias was not found. Maybe you forgot to join it?skiptake

const dbQuery: SelectQueryBuilder<T> = userRepository.createQueryBuilder('User');
dbQuery.leftJoinAndMapMany(...);
dbQuery.skip(skip);
dbQuery.take(take);

更新: 我已经检查了 lib 并找到了函数,发现 aliasName 在这里带有引号,所以我在那里添加了代码以删除这些引号,它现在可以工作了,但不确定它是否是一个很好的解决方案:)typeormQueryExpressionMap.prototype.findAliasByName = function (aliasName)

节点.js PostgreSQL 左联接 类型

评论


答:

0赞 Artem 11/6/2023 #1

问题是,在万一的情况下,你应该提供但不提供(就像你使用万一一样orderByskiptakeUser.id"User"."id"limit/offset)