在 TypeORM 查询中有不必要的 leftJoin

Having unnecessary leftJoin in TypeORM query

我有两个实体,

@Entity('forms')
export class Form {
  // Form values
  // We set eager to true so that the values are loaded when we do an upsert
  @OneToMany('FormValueText', 'form', { eager: true, cascade: true })
  textValues: FormValueText[];
 
  @Column({ type: 'smallint' })
  @Field()
  version: number;

  @Column({ type: 'text' })
  @Field()
  projectID: string;
}


@Entity('formValuesText')
export class FormValueText {
  @ManyToOne('Form', 'textValues')
  @JoinColumn({ name: 'formID' })
  form: Form

  @Column({ type: 'varchar' })
  @Field()
  value: string;
}

当我尝试从第一个实体(表单)的服务进行查询时

repo.find({
      select: ['version'],
      where: { projectID },
    });

查询包括 LEFT JOIN 和 formValuesText

SELECT
    "Form"."version" AS "Form_version", "Form"."id" AS "Form_id"
FROM
    "forms" "Form"
    LEFT JOIN "formValuesText" "Form_textValues" ON "Form_textValues"."formID" = "Form"."id"
WHERE ("Form"."projectID" = )
AND("Form"."deletedAt" IS NULL)

预期

SELECT
    "Form"."version" AS "Form_version", "Form"."id" AS "Form_id"
FROM
    "forms" "Form"
WHERE ("Form"."projectID" = )
AND("Form"."deletedAt" IS NULL)

有没有办法在查询中不使用 LEFT JOIN?

查询具有 LEFT JOIN 的原因是因为 eager: true 在表单实体中。

在我的例子中,在我不想使用 LEFT JOIN 的地方,我应该使用禁用急切关系的 QueryBuilder。

参考:https://orkhan.gitbook.io/typeorm/docs/eager-and-lazy-relations