<aside> 💡 어떤 프로퍼티끼리 연결할건지 적어준다. 양쪽 테이블에 모두 적어주는 듯
</aside>
// userModel 입장
@OneToOne(() => ProfileModel, (profile) => profile.user)
profile: ProfileModel;
// ProfileModel의 입장
// 실제 relation ship을 할 Model
// 이렇게 해놓으면 ProfileModel의 데이터들을 user.profile을 통해서 가져올 수 있다.
@OneToOne(() => UserModel, (user) => user.profile)
user: UserModel;
<aside> 💡 어느한 테이블은 상대방 테이블의 아이디를 갖고 있어야한다. 어느 테이블에서 상대방 테이블의 아이디를 갖고 있을지 개발자가 정해준다.
</aside>
@Get('users')
getUsers() {
return this.userRepository.find({
relations: {
profile: true,
},
});
}
결과 : profile도 가져올 수 있다.
@JoinColumn
을 했으므로 profile Table에 userId
가 있는것을 확인 할 수 있다.
// profileModel
@OneToOne(() => UserModel, (user) => user.profile)
@JoinColumn()
user: UserModel;
// userModel
@OneToOne(() => ProfileModel, (profile) => profile.user)
profile: ProfileModel;
<aside> 💡 One To One시 @JoinColumn을 적어놓은곳에 상대방 Table의 아이디가 생긴다.
</aside>