当我在 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.user
和 postComment.user
.
试试 .leftJoinAndSelect('postComment.user', 'postCommentUser')
.
现在,如果您想要 select 创建 post 的用户的用户 ID,您可以通过 user.id
指定。如果您想 select 评论 post 的用户的 ID,您可以通过 postCommentUser.id
指定
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.user
和 postComment.user
.
试试 .leftJoinAndSelect('postComment.user', 'postCommentUser')
.
现在,如果您想要 select 创建 post 的用户的用户 ID,您可以通过 user.id
指定。如果您想 select 评论 post 的用户的 ID,您可以通过 postCommentUser.id