Development/Typescript | GraphQL | typeorm
[typeorm] OneToOne 관계에 대해 정리
Tunko
2021. 3. 9. 22:37
우선 관계에 대한 설명을 하기위해
엔티티 A, B 가 존재한다.
OneToOne의 관계는 각각의 엔티티가 서로에 대한 정보를 단하나씩만 알고 있음을 의미한다.
즉
A 엔티티도 B를 가지고 있고
B엔티티도 A를 가지고 있다.
하지만 여기서 중요한 부분이 JoinColumn() 이다.
JoinColumn() 는 데이터의 접근에 따라 어느 한쪽엔 필수적으로 선언 되어있어야 한다.
만약 데이터 조회시 B 를 통해서 A 에 대한 정보를 알고싶다면.
@InputType({ isAbstract: true })
@ObjectType()
@Entity()
export class B {
@PrimaryGeneratedColumn()
@Field((type) => Number)
id: number;
@OneToOne((type) => A)
@JoinColumn()
a: A;
}
위처럼 @JoinColumn() 이 들어가야 된다.
반대의 경우라면 A엔티티측에 @JoinColumn()이 들어가야 된다.
반응형