내가 현재 기준점을 잡은 entity의 이름을 A라고 하자.
A와 B entity는 서로 일대일 관계이고, B와 C는 일대다 관계였다.
이런 상황에서 A->C로 바로 참조할 수 있는 방법이 있나?라고 고민하던 중에 내가 처음으로 시도하던 방법은 relation에 2개의 테이블 이름을 넣는 것이었다.
const result = await this.memberRepository.find({
relations: ['B','C'],
});
결과값이 원하는 대로 나오긴 했지만, 이는 올바른 방법이 아니다. 왜일까?
만약 A에서 중구난방으로 떨어진 테이블을 참조하려고 하면 그 관계가 끝도 없이 파야 나올텐데, 내가 했던 방법은 올바르지 않은 것이다.
이럴 때에는 참조하는 테이블을 잘 명시해주어야 한다.
수정한 내용은 다음과 같다.
const result = await this.memberRepository.find({
relations: ['B.B에서 C테이블을 참조하고 있는(OneToMany관계) 엔티티 변수 이름'],
});
'Backend > PostgreSQL and TypeORM' 카테고리의 다른 글
회원가입때 받을 개인정보 컬럼이 달라질 것을 고려하기 위해 jsonb 사용한다? (0) | 2023.08.21 |
---|---|
JSONB 타입이 column에 존재한다 (0) | 2023.08.21 |
fidOne()과 FindOneOptions 객체 (0) | 2023.08.18 |
Module '"nestjs-typeorm-paginate"' has no exported member 'IPaginationOptions'. (0) | 2023.08.17 |
QueryBuilder 사용시 = 표현과 = : 표현의 차이점 (0) | 2023.08.17 |