작성
·
430
0
답변 1
0
안녕하세요!!
좋은 질문 주셔서 감사합니다.
혹시 제가 엔티티 만드는 부분에서 관계를 이미 설정했는데
또 fk 칼럼을 다시 만든 부분에 대해서 질문 주신 거죠?!
이렇게 하면 좋은 점은 조인 없이 관계 테이블의 fk도 조회할 수 있게 됩니다.
예를 들어서
이렇게 프로필과 유저 엔티티가 1:1 관계로 있고
이때 join 없이 단순히 User 엔티티를 불러오면 어떤 정보가 올까요?
User {
id: 3,
name: "John"
}
이런 식으로 올 것입니다. profileId는 오지 않죠...
그러면 profileId를 가져오려면 어떻게 해야 할까요?
await User.findOne({id: userId}, {relations: ["profile"]}) 이런 식으로 relations 옵션을 이용해서 JOIN을 해와야 가져올 수가 있습니다.
이런 식으로 가져오면
profile의 Id 뿐만 아니라 gender, photo 모든 칼럼의 정보까지 가져오게 됩니다.
하지만 이미 칼럼을 명시적으로 생성해놓으면 profileId fk를 받을 수 있게 됩니다.
현재 저희는 이걸 @Column() 데코레이터를 사용했지만 더 명시적으로 하려면 @RelationId라는 것을 이용해서도 할 수 있습니다.
감사합니다.