@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 |