@RelationId
- 이 데코레이터는 엔티티의 관계를 사용하여 특정 필드에 대한 외래 키 값만을 직접 가져올 수 있게 해준다.
- 관계를 전체 로드하지 않고도 필요한 정보만 가져올 수 있다.
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, RelationId } from "typeorm"; import { Profile } from "./Profile"; @Entity() export class User { @PrimaryGeneratedColumn() id: number; @Column() name: string; @OneToOne(() => Profile) @JoinColumn() profile: Profile; // 외래 키 값을 직접 참조하는 필드 @RelationId((user: User) => user.profile) profileId: number; }
- @OneToOne(() => Profile): User와 Profile 간의 일대일 관계를 정의한다.
- @JoinColumn(): User 엔티티에서 Profile의 외래 키 열을 정의한다.
- @RelationId((user: User) => user.profile): User 엔티티에서 profile 관계의 외래 키 값을 가져온다. 이 데코레이터를 사용하면 profileId 필드에 Profile의 id 값이 저장된다.
'Database > TypeORM' 카테고리의 다른 글
Find OPtions(LessThan, MoreThan … ) , 데이터를 조회할 때 사용되는 옵션 (0) | 2024.08.27 |
---|---|
Relations 정리 Many-to-Many, @JoinTable() (0) | 2024.08.06 |
Column 타입 JSON으로 지정, @Column({ type: "json" }) (0) | 2024.08.02 |
Relations 정리 One-to-One, @JoinColumn() (0) | 2024.08.02 |
Relations 정리 OneToMany, ManyToOne (0) | 2024.08.02 |