Database/TypeORM
@RelationId, 특정 필드에 대한 외래 키 값만 가져오기
wam
2024. 8. 2. 22:36
@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 값이 저장된다.