在 Typeorm With Repository 方法的 Where 子句中使用 OR 进行 JOINED 查询

Make JOINED query with OR in Where clause in Typeorm With Repository method

我正在尝试使用 Nestjs 中的 connection.getRepository 方法在 TYPEORM 中构建此查询。

                SELECT
                    "car"."RowID"
                FROM
                    "cars"."car" "car"
                    LEFT JOIN "cars"."doors" "doors" ON "car"."doorID" = "doors"."doorID"
                    LEFT JOIN "cars"."wheels" "wheels" ON "car"."wheelID" = "wheels"."wheelID"
                    LEFT JOIN "cars"."engines" "engines" ON "car"."engineID" = 
                    "engines"."engineID"
                WHERE
                        ("car"."Status" = 0 OR "car"."Status" = 2) AND
                        "car"."RetryAttempts" < 5 AND
                        ("doors"."Status" = 3 OR "doors"."Status" = 4) AND
                        ("wheels"."Status" = 3 OR "wheels"."Status" = 4) AND
                        ("engines"."Status" = 3 OR "engines"."Status" = 4)
            )``
    ````
    This is what i came up with but it doesnt work.

this.connection
            .getRepository(CarsEntity)
            .find({
                select: ["rowID"],
                join: {
                    alias: "car",
                    leftJoinAndSelect: {
                        engines: "car.engines",
                        doors: "car.doors",
                        wheels: "car.wheels",
                    },
                },
                where: {
                    retryAttempts: LessThan(5),
                    status:In([
                        0,2]
                    ),
                    engines: {
                        status: In([3,4]
                        )
                    },
                    doors: {
                        status: In([3,4]
                        )
                    },
                    wheels: {
                        status: In([3,4]
                        )
                    }
                }
            });

此查询的 where 子句如下所示

WHERE
    "CarsEntity"."retryAttempts" < @0
    AND "CarsEntity"."status" IN (@1, @2)
    AND "CarsEntity"."engineID" = @3
    AND "CarsEntity"."doorID" = @4
    AND "CarsEntity"."wheelID" = @5

问题是额外的字段来自哪里。是我的查询还是我应该搜索实体?我的身份条件会怎样?

确保版本等于或大于 “typeorm”:“^0.2.37”,

此版本修复了一个错误。以前我在用 “typeorm”:“^0.2.34