@One-to-One
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"
@Entity()
export class Profile {
@PrimaryGeneratedColumn()
id: number
@Column()
gender: string
@Column()
photo: string
}
import {
Entity,
PrimaryGeneratedColumn,
Column,
OneToOne,
JoinColumn,
} from "typeorm"
import { Profile } from "./Profile"
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number
@Column()
name: string
@OneToOne(() => Profile)
@JoinColumn() **// 이 어노테이션은 'profile' 필드에 외래 키를 지정**
profile: Profile
}
- 두 엔티티 간의 일대일(1:1) 관계를 정의하는 데 사용
- 즉, 하나의 엔티티가 다른 하나의 엔티티와만 관계를 맺는 경우이다.
- 예를 들어, 사용자(User)가 하나의 프로필(Profile)을 갖고, 각 프로필은 하나의 사용자에만 속하는 경우이다.
@JoinColumn
- 외래 키 열(column)을 명시적으로 정의하는 데 사용된다.
- 관계의 주인(Owner) 쪽에서 사용되며, 외래 키가 어떤 열에 저장될지를 지정한다.
- @JoinColumn 설정한 테이블에는 "relation ID"와 대상 엔티티 테이블에 대한 외부 키가 포함된다.
'Database > TypeORM' 카테고리의 다른 글
@RelationId, 특정 필드에 대한 외래 키 값만 가져오기 (0) | 2024.08.02 |
---|---|
Column 타입 JSON으로 지정, @Column({ type: "json" }) (0) | 2024.08.02 |
Relations 정리 OneToMany, ManyToOne (0) | 2024.08.02 |
EntityRepository - deprecated 되었다. (0) | 2024.08.02 |
TypeORM의 Entity (0) | 2024.07.29 |