当我在 Typeorm 中使用 leftJoinAndSelect 时,出现错误,不能多次使用 table

When i use leftJoinAndSelect in Typeorm, There is an error not to use the table more than once

win10, 最新express, 最新typeorm

@EntityRepository(Post)
export class PostRepository extends AbstractRepository<Post> {
  findPostById(postId: number) {
    return this.createQueryBuilder('post')
      .leftJoinAndSelect('post.user', 'user')
      .leftJoinAndSelect('post.postComments', 'postComment')
      .leftJoinAndSelect('postComment.user', 'user')
      .leftJoinAndSelect('post.likes', 'like')
      .leftJoinAndSelect('post.dislikes', 'dislike')
      .where('post.id = :postId', { postId })
      .getOne();
  }
} 

如果我使用上面的,我会得到以下错误

The table name "user" is specified at least once.

.leftJoinAndSelect('post.user', 'user')
.leftJoinAndSelect('postComment.user', 'user')

我该如何解决这种情况?

您收到错误消息是因为您对多个联接使用别名 user - post.userpostComment.user.

试试 .leftJoinAndSelect('postComment.user', 'postCommentUser').

现在,如果您想要 select 创建 post 的用户的用户 ID,您可以通过 user.id 指定。如果您想 select 评论 post 的用户的 ID,您可以通过 postCommentUser.id

指定