TypeORM 中 leftJoin 和 leftJoinAndSelect 的区别

问题描述 投票:0回答:1

我在

TypeORM
后端上使用
NestJS
进行以下查询:
PostgreSQL

const queryBuilder = this.usersRepository .createQueryBuilder('user') .select([ 'user.id', 'userWallets.balance', 'userWallets.currency', ]) .leftJoin('user.userWallets', 'userWallets')

中定义了与 UserWallet 的一对多关系。

user entity

以及与用户的多对一 
@OneToMany(() => UserWallet, (userWallet) => userWallet.user) userWallets: UserWallet[];

user wallet entity

每个用户有两个钱包,因此当我按照上面的方式编写查询时,我得到了预期的 userWallet 数组,但它始终只有一个元素。如果我用 
@ManyToOne(() => User, (user) => user.userWallets) user: User;

编写查询,那么我会在 userWallets 数组中得到预期的两个元素。

leftJoinAndSelect

我认为通过在主
const queryBuilder = this.usersRepository .createQueryBuilder('user') .select([ 'user.id', ]) .leftJoinAndSelect('user.userWallets', 'userWallets')

中包含用户钱包字段我可以得到所有这些,但似乎有区别,我在 TypeORM 文档或其他地方找不到任何说明。有什么区别?

    

postgresql nestjs typeorm
1个回答
0
投票

select

© www.soinside.com 2019 - 2024. All rights reserved.