Select 使用left join nestjs时软删除记录

Select soft deleted record when using left join nestjs

我有一个 订单 table 与 地址

@Entity('orders')
export class Order {
  ...
  @ManyToOne(() => Address, (address) => address.orders)
  address: Address;
  ...
}
@Entity('addresses')
export class Address {
  ...
  @DeleteDateColumn()
  deletedAt?: Date;
  ...
}

address table 使用软删除,如果我使用下面的查询我不能得到软删除 address记录

const query = this.createQueryBuilder('order')
      .leftJoinAndSelect('order.address', 'address');

我想获取所有 order with address 软删除与否。对此问题有任何疑问吗?

使用以下语法:

const query = this.createQueryBuilder('order')
  .withDeleted()
  .leftJoinAndSelect('order.address', 'address');

确保在加入之前添加 .withDeleted,否则删除的 Address 个实体将不会返回。