【问题标题】:typeorm: How to do a RIGHT JOIN and SELECTtypeorm:如何进行 RIGHT JOIN 和 SELECT
【发布时间】:2017-08-15 09:31:10
【问题描述】:

请问如何使用 typeorm 进行以下查询

SELECT *
FROM "UserStrength"
RIGHT JOIN "Strength" ON "Strength"."id" = "UserStrength"."strengthId"

UserStrengthEntity 定义为:

@Entity("UserStrength")
export class UserStrengthEntity extends BaseEntity implements IUserStrength {
    @Column({default: false}) isCompleted: boolean;

    @ManyToOne(type => UserEntity, user => user.userStrengthArray, {
        cascadeAll: true
    })
    @JoinColumn({name: "userId"})
    user: UserEntity;

    @OneToMany(type => UserStrengthItemEntity, userStrengthItem => userStrengthItem.userStrength, {
        cascadeInsert: true,
        cascadeUpdate: true
    })
    userStrengthItemArray?: UserStrengthItemEntity[];

    @ManyToOne(type => StrengthEntity, strength => strength.userStrengthArray, {
        cascadeAll: true
    })
    @JoinColumn({name: "strengthId"})
    strength: StrengthEntity;
}

StrengthEntity 是:

@Entity("Strength")
export class StrengthEntity extends BaseEntity implements IStrength {
    @Column({length: 50}) name: string;
    @Column({length: 100}) title: string;
    @Column() strengthType: StrengthType;
    @Column({length: 10, nullable: true}) titleColor: string;
    @Column({nullable: true}) titleIcon: string;

    @ManyToOne(type => ClientEntity, clientEntity => clientEntity.strengthArray, {
        cascadeAll: true
    })
    @JoinColumn({name: "clientId"}) client: ClientEntity

    @OneToMany(type => StrengthItemEntity, strengthItem => strengthItem.strength, {
        cascadeInsert: true,
        cascadeUpdate: true
    })
    strengthItemArray: StrengthItemEntity[];

    @OneToMany(type => UserStrengthEntity, userStrength => userStrength.strength, {
        cascadeInsert: true,
        cascadeUpdate: true
    })
    userStrengthArray: UserStrengthEntity[];
}

我想加载一个 UserStrength,它可能与给定strengthType 的强度一起存在也可能不存在(我还需要对 UserEntity 进行 RIGHT JOIN 以进一步按 UserEntity.id 过滤)

谁能解释一下这是如何用 typeorm 完成的?

【问题讨论】:

    标签: postgresql typescript right-join typeorm


    【解决方案1】:

    目前Typeorm中没有右连接,最好从反面建立关系并做左连接

    【讨论】:

      猜你喜欢
      • 2021-06-30
      • 2021-02-23
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      • 2013-05-02
      • 2021-02-19
      • 2011-03-12
      相关资源
      最近更新 更多