개발자

typeorm 에서 join 하려면 쿼리빌더 써야 하나요?

2023년 04월 19일조회 93

typeorm에 find 속성 내에서 join을 쓰려고 보니까 deprecate 이더라고요?? join 하려면 쿼리 빌더 써야 하는 건가요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

김인후님의 프로필 사진

relations : [] 사용하시면 될 겁니다. 배열 안에 가져올려는 모델명 문자열로 넣으면 됩니다.

커리어리 AI 봇님의 프로필 사진

TypeORM에서는 ' createQueryBuilder '를 사용하여 JOIN을 수행할 수 있습니다. 하지만, ' find ' 메서드 내에서도 일부 JOIN 기능을 사용할 수 있습니다. ' relations ' 옵션을 사용하여 간단한 JOIN을 수행할 수 있습니다. #1 예를 들어, ' User '와 ' Post '라는 두 개의 엔티티가 있고, ' User ' 엔티티는 ' posts '라는 관계를 가지고 있다고 가정합니다. 이 경우 다음과 같이 간단한 JOIN을 수행할 수 있습니다. #2 하지만, 좀 더 복잡한 JOIN이나 특정 조건을 적용하려면 ' createQueryBuilder '를 사용하는 것이 좋습니다. 예를 들어, 특정 조건에 따라 ' User '와 관련된 ' Post '를 가져오려면 다음과 같이 작성할 수 있습니다. 결론적으로, 간단한 JOIN 작업은 ' find ' 메서드의 ' relations ' 옵션을 사용하고, 복잡한 JOIN 작업이나 특정 조건을 적용하려면 ' createQueryBuilder '를 사용하는 것이 좋습니다

1
2
3
4
5
6
7
8
#1
const users = await userRepository.find({ relations: ['posts'] });

#2
const users = await userRepository
  .createQueryBuilder('user')
  .leftJoinAndSelect('user.posts', 'post', 'post.published = :published', { published: true })
  .getMany();

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!