• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Workspace 관리자 관계 지정 질문

21.10.15 11:34 작성 조회수 119

0

Entity를 보니 Workspace 관리자 필드가 OwnerId인 것 같더라구요! Typeorm 공식문서를 참고했을때 @OnetoOne 데코레이터와 @Jointable 데코레이터만 사용해 1:1 관계를 구현했었는데 따로 @Column 데코레이터로 OwnerId를  또 만드신 이유가 있을까요??

공식문서 참고해서 코드 짰을 때 에러가 떴는데 제로초님 코드 처럼 변경하니 해결돼서 차이가 궁금합니다!

답변 2

·

답변을 작성해보세요.

0

최세환님의 프로필

최세환

질문자

2021.10.15

어쩐지 @JoinColumn을 사용했을때 OwnerId가 없다는 에러가 계속 나왔었습니다.
답변 감사합니다.

0

OwnerId 컬럼이 따로 있어야 OwnerId 컬럼 자체도 사용할 수 있습니다. (workspace.OwnerId 같은 값)

 

@Column('int', { name: 'OwnerId', nullable: true })
OwnerId: number | null;

@ManyToOne(() => Users, (users) => users.Workspaces, {
onDelete: 'SET NULL',
onUpdate: 'CASCADE',
})
@JoinColumn([{ name: 'OwnerId', referencedColumnName: 'id' }])
Owner: Users;

저는 그래서 보통 Owner(관계)와 OwnerId(실제 컬럼)을 둘 다 적습니다.