inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

typeorm 관계 설정하기

Workspaces, Channels, Users 들간의 entity 에서 ManyToMany를 제거하는 방법

331

songkim5787

작성한 질문수 3

0

nest-typeorm 폴더에서 Workspaces, Channels, Users 들간의 entity 에서 ManyToMany 관계를 제거하고 OneToMany와 ManyToOne관계로 대신하는 코드가 있습니다. ManyToMany관계를 사용하지 않으려면 @ManyToMany 부분을 제거하고 field들만 남겨 놓으면 되나요?

 

typeorm express nodejs NestJS TypeORM

답변 1

0

제로초(조현영)

그냥 남겨두고 안 쓰면 됩니다. @ManyToMany를 지운다고 해서 테이블에 존재하는 다대다 관계가 사라지는게 아닙니다. 테이블에는 다대다 관계가 존재하지만 typeorm에서 안 쓸 뿐인 것이죠.

0

songkim5787

@ManyToMany(...)를 안써도 되는 거라면 지워도 되는 거 아닌가요? 한번 지워봤더니 에러가 납니다. 이 코드를 참고해 주시기 바랍니다.

async deserializeUser(userId: string, done: CallableFunction) {
    return await this.usersRepository
      .findOneOrFail({
        where: { id: +userId },
        select: ['id', 'email', 'nickname'],
        relations: ['Workspaces'],
      })
      .then((user) => {
        console.log('user', user);
        done(null, user);
      })
      .catch((error) => done(error));
  }

다음의 부분에서 문제가 있어 보입니다.

relations: ['Workspaces'],

Users 엔터티에서 Workspaces 릴레이션이 제거되었기 때문에 user.workspaces가

null이 됩니다. 해결책은 WorkspaceMembers 리포지터리에서 쿼리빌더로 로그인 유저가 참여하고 있는 workspace를 찾아서 user에 붙혀 주면 될 거 같습니다. 맞나요?

0

제로초(조현영)

저기서 쓰고 있으니까 지우면 에러가 나는 거죠.

워크스페이스멤버에서 쿼리빌더로 하셔도 되고 유저에서 쿼리빌더로 워크스페이스멤버 워크스페이스 순으로 두 번 조인해서 해도 됩니다.

0

songkim5787

두 가지 다해봤는데 잘 됩니다.

강의자료는 어디서 다운받나요?

0

119

4

질문 있습니다.

0

300

3

(강의 5:42 질문) providers를 통한 여러 개의 인스턴스 생성 & exports 통한 싱글톤 생성

0

154

2

코드 편집기 확장 프로그램

0

210

2

(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?

0

148

2

(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문

0

171

3

로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.

0

153

2

로그인방법이 고민됩니다.

0

191

2

yarn seed 명령어 실행 시 데이터 삽입 안됨

0

297

4

yarn run db:create 시에 발생하는 데코레이터 오류

0

244

2

npm run db:create 시에 발생하는 decorating 오류

0

235

2

RxJS 디버깅 질문 있습니다.

0

190

3

CacheManager에 대해 질문 있습니다.

0

176

2

로깅은 어떻게 하는게 효율적일까요?

0

226

1

CORS 질문 있습니다.

0

418

2

쿠키 옵션에 대해서 질문 있습니다.

0

185

2

로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??

0

450

1

401 unauthorized문제

0

290

1

가드의 장점에 대해서 질문이 있습니다.

0

225

1

로그 관리에 대해 질문 있습니다.

0

253

2

CORS 에러 질문 있습니다.

0

319

2

배포 환경 DB 연결 질문 있습니다.

0

411

2

socket io 미 연결 문제 (nest & flutter)

1

1156

3

no elements in sequence 에러 관해서 질문이 있습니다.

0

456

1