【问题标题】:Find - relations xxx not found查找 - 未找到关系 xxx
【发布时间】:2021-07-19 13:48:40
【问题描述】:

我正在尝试返回实体,包括其关系,但我收到一条错误消息,提示找不到关系 xxx。我正在使用存储库模式。

@Entity({ name: 'person' })
export class PersonEntity {
    @PrimaryGeneratedColumn('uuid')
    id: string;

    @Column({ type: 'number' })
    statusId: number;

    @ManyToOne(() => StatusEntity, status => status.id)
    status: StatusEntity;
}

@Entity({ name: 'statuses' })
export class StatusEntity {
    @PrimaryGeneratedColumn('increment')
    id: number;

    @Column({ type: 'varchar', length: 256 })
    name: string;
}

我正在使用 postgres,并且我声明了一个外键:

"public"."person" ADD CONSTRAINT "FK_person_statusid" FOREIGN KEY ("statusId") REFERENCES "public"."statuses"("id")

为我服务:

public async getAll(): Promise<PersonEntity[]> {
  return await this.personRepository.find({ relations: ['statuses'] });
}

【问题讨论】:

    标签: node.js postgresql typeorm


    【解决方案1】:
    @Entity({ name: 'person' })
    export class PersonEntity {
        @PrimaryGeneratedColumn('uuid')
        id: string;
    
        @Column({ type: 'number' })
        statusId: number;
    
        @ManyToOne(() => StatusEntity)
        @JoinTable()
        status: StatusEntity;
    }
    
    @Entity({ name: 'status' })
    export class StatusEntity {
        @PrimaryGeneratedColumn()
        id: number;
    
        @Column({ type: 'varchar', length: 256 })
        name: string;
    }
    

    请注意我已将 StatusEntity 名称从 statuses 更改为 status

    【讨论】:

    • 谢谢,但不,一个人只能拥有一种身份。例如,死或活,而不是两者兼而有之。状态是一个查找表。需要说明的是,Statuses 永远不会关心谁处于其状态。例如,在我的用例中,我们永远不会搜索谁还活着。
    • 如果你的用例是这样的,那么我会改变答案。
    【解决方案2】:

    您能否删除您手动创建的外键,然后像下面这样更新您的实体并尝试?

    @Entity({ name: 'person' })
    export class PersonEntity {
        @PrimaryGeneratedColumn('uuid')
        id: string;
    
        @Column({ type: 'number' })
        statusId: number;
    
        @ManyToOne(() => StatusEntity)
        @JoinColumn({ name: 'statusId })
        status: StatusEntity;
    }
    

    【讨论】:

      猜你喜欢
      • 2020-09-28
      • 2017-04-29
      • 1970-01-01
      • 2012-02-13
      • 2015-07-25
      • 2020-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多