@Entity()
export class Instructors extends BaseEntity {
@PrimaryGeneratedColumn({
type: 'int',
})
id: number
...
@OneToMany(() => Lectures, lecture => lecture.instructors)
lectures: Lectures[]
}
@Entity()
export class Lectures extends BaseEntity {
@PrimaryGeneratedColumn({
type: 'int',
})
id: number
...
@Column({
type: 'timestamptz',
nullable: true,
})
lectureModifyDate: Date
@OneToMany(() => CourseDetails, courseDetail => courseDetail.idl)
courseDetail: CourseDetails[]
@ManyToOne(() => Instructors, instructor => instructor.lectures)
instructors: Instructors
}
@Entity()
export class CourseDetails extends BaseEntity {
@PrimaryColumn()
@ManyToOne(() => Lectures, lecture => lecture)
idl: Lectures
@PrimaryColumn()
@ManyToOne(() => Students, stduent => stduent)
ids: Students
@Column({
type: 'timestamptz',
nullable: false,
})
registDate: Date
}
@Entity()
export class Students extends BaseEntity {
@PrimaryGeneratedColumn({
type: 'int',
})
id: number
...
@OneToMany(() => CourseDetails, courseDetail => courseDetail.ids)
courseDetail: CourseDetails[]
}
오류 메세지에 따라
tsconfig.json "emitDecoratorMetadata": true 추가
실패
"reflect-metadata" 추가
실패
@Entity()
export class CourseDetails extends BaseEntity {
@ManyToOne(() => Lectures, lecture => lecture.id, { primary: true })
lecture: Lectures
@ManyToOne(() => Students, stduent => stduent.id, { primary: true })
student: Students
@Column({
type: 'timestamptz',
nullable: false,
})
registDate: Date
}
문제 해결
@PrimaryColumn()와 { primary: true }의 동작 방식에 차이가 있었다.