我正在用TypeORM设置数据库表。我有一个用户实体和一个MediaList实体。用户与MediaList实体有一个单域关系,如下所示:

@Entity('users')
export class User extends BaseEntity {
  @PrimaryGeneratedColumn('uuid') public id: string;

  @Column('varchar', {length: 50, name: 'first_name'})
  public firstName: string;

  @Column('varchar', {length: 50, name: 'last_name'})
  public lastName: string;

  @Column('varchar', {nullable: false, length: 255})
  public email: string;
  .
  .
  .
  @OneToMany((type) => MediaList, (mediaList) => mediaList.owner)
  public mediaLists: MediaList[];
}

@Entity('media_list')
export class MediaList extends BaseEntity {

  @PrimaryGeneratedColumn('uuid') public id: string;

  @Column('varchar', {length: 50})
  public title: string;

  @ManyToOne((type) => User, (user) => user.mediaLists)
  public owner: User;
}


我创建这样的用户:
    const user = User.create({
        firstName: 'john',
        lastName: 'doe',
        email,
        password,
        permissions: generalPermissions,
    });

    await user.save();

保存用户时,会出现引用错误:
(node:16708) UnhandledPromiseRejectionWarning: ReferenceError: MediaList is not defined

我在这里做错什么了?我的映射不正确吗?

最佳答案

当我试图与数据库中现有的表建立关系时,我遇到了同样的问题。奇怪的是,我对rest表没有这个问题,只有特定的三个表有关系。
引用错误:未定义MySomeEntity
我没有时间去调查到底哪里出了问题,但肯定要调查并向开发人员报告。
我刚刚解决了这个问题,删除了所有@OneToMany/@ManyToOne修饰符,并使用leftJoinAndMapMany/leftJoinAndMapOne代替leftJoinAndSelect来链接查询中的关系。
它起作用了。

关于postgresql - TypeOrm ReferenceError:未定义X,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55438996/

10-10 22:00