해결된 질문
작성
·
306
0
안녕하세요 typeORM 관계설정 중에 궁금한게 생겨서 질문드립니다.
공식문서에 나온 코드를 보면 ManyToOne 데코레이터 안에 두 가지 인자가 있는데 앞에 있는건 강의에서도 작성하지만 두번 째인자는 생략이 가능한 것 같네요.. 혹시 두번 째 인자는 OneToMany를 작성할 때도 생략이 가능한가요?
그리고 혹시 OneToMany로 받아오는 배열을 배열말고 count해서 숫자로 칼럼에 넣을 수 있는 방법이 있을까요..? 힌트라도 알려주시면 감사하겠습니다!!
@Entity()
export class Photo {
@PrimaryGeneratedColumn()
id: number
@Column()
url: string
@ManyToOne(() => User, (user) => user.photos)
user: User
}
답변 1
0
안녕하세요! QQ님!
oneToMany에서 두번째 인자는 꼭 필요합니다! manyToMany 에서도 마찬가지였죠?! 반대편이 Many인 경우, 반대편에서 나를 어떻게 가리킬건지 알려주셔야해요!
다음으로 count는 여러가지 방법이 있을 것 같아요!
2-1) 먼저, 반대편 배열을 조인 후 가져와서 length를 계산하시는 방법,
2-2) 하지만 count만 알면 된다면 해당 테이블에서 count!만 조회하는 쿼리를 1번 따로 날리시는 방법,
2-3) 아니면 조금 복잡하지만 queryBuilder와 subQuery 등을 사용해서 가져오는 방법,
2-4) count를 따로 관리하는 집계테이블을 만들어서 count를 한방에 찾아오는 방법
등이 있겠어요! 성능은 2-4)가 가장 빠르겠지만 초기 프로젝트에선 관리가 복잡해질 수 있겠어요! 상황에따라 적절히 업그레이드 하시면 될 것 같습니다!^^