【问题标题】:Cannot access 'User' before initialization - NestJs and typeORM初始化之前无法访问“用户”-NestJs 和 typeORM
【发布时间】:2021-01-22 23:38:52
【问题描述】:

尝试创建双向 OneToOne 关系时出现以下错误。我基本上是followed typeORM docs,所以不知道为什么会出现错误。

ReferenceError: 在初始化之前无法访问“用户”

下面的用户类

import { Entity, Column, PrimaryGeneratedColumn, OneToOne } from "typeorm"
import { UserProfile } from "./userProfile.entity"

@Entity()
export class User {
    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    password: string;

    @Column()
    email: string;

    @Column()
    timezone: string;

    @OneToOne(type => UserProfile, userProfile => userProfile.id)
    userProfile: UserProfile
}

下面的用户配置文件类

import { Entity, Column, PrimaryGeneratedColumn, OneToOne, JoinColumn } from "typeorm"
import { User } from './user.entity'
import { Media } from './media.entity'

@Entity()
export class UserProfile {
    @PrimaryGeneratedColumn()
    id: number

    @OneToOne(type => User, user => user.userProfile)
    @JoinColumn()
    user: User;

    @OneToOne(type => Media, {
        cascade: true
    })
    @JoinColumn()
    avatar: Media;

    @Column()
    avatarId: number;

    @Column()
    name: string;

    @Column()
    description: string;

    @Column()
    age: number;
}

【问题讨论】:

  • 可能重复:stackoverflow.com/questions/60363353/… 对我来说,将所有实体添加到一个桶中并将所有导入更改为该桶解决了这个问题。例如:从 './entities' 导入 { User, Media };

标签: nestjs typeorm


【解决方案1】:

也许试试这个:

// User
@OneToOne(type => UserProfile, userProfile => userProfile.user)
userProfile: UserProfile

// UserProfile
@OneToOne(type => User, user => user.userProfile)
@JoinColumn()
user: User;

【讨论】:

    猜你喜欢
    • 2020-06-07
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2020-12-29
    • 2021-09-10
    • 2020-10-23
    • 2021-05-17
    • 1970-01-01
    相关资源
    最近更新 更多