인프런 커뮤니티 질문&답변

hodoldol님의 프로필 이미지
hodoldol

작성한 질문수

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

Override Options 사용해보기

Paginate에서 overrideFindOptions 문제

작성

·

91

0

overrideFindOptions에서 where절을 작성하면 dto에 있는 where 조건들이 제대로 동작하지 않는 거 같아요

 paginateComments(dto: PaginateCommentsDto, articleId: number) {

    return this.commonService.paginate(
      dto,
      this.commentsRepository,
      {
        relations: {
          author: true,
        },
        select: {
          author: { id: true, devName: true },
        },

        where: {
          article: { id: articleId },
        },
      },
      `articles/${articleId}/comments`,
    );
  }

paginate에서 where조건이 있으면 병합하는 방법으로 해결해보려고 했는데 원하는대로 동작하지 않는거 같습니다. 어떻게 해결하면 좋을까요??

답변 2

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

overrideOptions는 말 그대로 값을 완전 override 하기위해 설계 됐습니다.

완전한 override를 원하지 않는다면 where 조건이 override 되지 않고 merge 될 수 있도록 로직을 설계 하셔야 할 것 같습니다.

예를들면 lodash의 merge, mergeWith 같은 함수를 사용 할 수 있습니다.

https://lodash.com/docs/4.17.15#mergeWith

감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다.

질문하신 내용은 overrideFindOptions를 사용할 때 where 조건을 병합하는 과정에서 발생하는 문제에 대한 것으로 이해됩니다. NestJS에서 paginate 함수와 관련 한정된 정보만으로는 직접적인 해답을 제공하기가 어려울 수 있습니다. 하지만, 관련해서 비슷한 컨텍스트에서의 질문이 하나 있어서 이를 참고하실 것을 권장드립니다.

해당 질문에서는 paginate 함수의 overrideOptions 파라미터에 where 필터를 새로 작성하는 상황에서, 기존에 설정한 where 필터를 무시하는 문제를 겪고 있으며, 이에 대한 해결책으로 overrideWhereFilter 옵션을 선택적으로 받는 방법을 통해 해결한 사례가 소개되어 있습니다.

이는 질문하신 내용과 완전히 동일한 상황은 아닐 수 있으나, where 조건의 병합과 관련된 처리 방법에 대한 힌트를 얻을 수 있을 것입니다. overrideFindOptions에서의 where 조건 처리 방법에 대해서는, 추가적으로 nestjs 공식 문서나 NestJS 커뮤니티에서의 관련 토론을 참고해 보는 것도 좋은 방법이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

hodoldol님의 프로필 이미지
hodoldol

작성한 질문수

질문하기