인프런 커뮤니티 질문&답변

QQ님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

typeORM Many to one 관계설정

해결된 질문

작성

·

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님!

  1. oneToMany에서 두번째 인자는 꼭 필요합니다! manyToMany 에서도 마찬가지였죠?! 반대편이 Many인 경우, 반대편에서 나를 어떻게 가리킬건지 알려주셔야해요!

     

  2. 다음으로 count는 여러가지 방법이 있을 것 같아요!

    2-1) 먼저, 반대편 배열을 조인 후 가져와서 length를 계산하시는 방법,

    2-2) 하지만 count만 알면 된다면 해당 테이블에서 count!만 조회하는 쿼리를 1번 따로 날리시는 방법,

    2-3) 아니면 조금 복잡하지만 queryBuilder와 subQuery 등을 사용해서 가져오는 방법,

    2-4) count를 따로 관리하는 집계테이블을 만들어서 count를 한방에 찾아오는 방법

     

    등이 있겠어요! 성능은 2-4)가 가장 빠르겠지만 초기 프로젝트에선 관리가 복잡해질 수 있겠어요! 상황에따라 적절히 업그레이드 하시면 될 것 같습니다!^^

QQ님의 프로필 이미지

작성한 질문수

질문하기