NestJS-GraphQL 스키마 유형과 함께 TypeORM 엔티티 모델 클래스를 사용하는 것이 좋습니까?

조셉

내가 만드는거야 GraphQL의 사용 API NestJSTypeORM을 . 클래식 사용자 엔터티부터 시작 하여 Nestjs 설명서에 설명 된대로 user.type.ts및을 모두 만들었습니다 user.entity.ts.

다음은 콘텐츠의 예입니다.

  • user.entity.ts
@Entity({ schema: 'mydb', name: 'userList' })
export class User {

    @Column('varchar', { name: 'guid', unique: true, length: 36 })
    guid: string;

    @Column('varchar', { name: 'firstName', length: 50 })
    firstName: string;

    @Column('varchar', { name: 'lastName', length: 100 })
    lastName: string;

    // ...
  • user.type.ts
@ObjectType()
export class UserType {
  @Field({
    name: 'ID',
    description: 'Global Universal ID of the User',
  })
  guid: string;

  @Field()
  firstName: string;

  @Field()
  lastName: string;

  // ...

문제는 동일한 필드를 사용하기 때문에 두 클래스의 데코레이터를 결합하는 단일 클래스를 만들 수 있습니까?

예를 들면 :

@Entity({ schema: 'mydb', name: 'userList' })
@ObjectType()
export class User {

    @Column('varchar', { name: 'guid', unique: true, length: 36 })
    @Field({
      name: 'ID',
      description: 'Global Universal ID of the User',
    })
    guid: string;

    @Field()
    @Column('varchar', { name: 'firstName', length: 50 })
    firstName: string;

    @Field()
    @Column('varchar', { name: 'lastName', length: 100 })
    lastName: string;

반 패턴인가? 이를 수행하는 데 제한이나 단점이 있습니까?

미리 감사드립니다

m8a

당신은 당신이 제안하는 것을 할 수 있습니다. 문제가되지 않습니다. 그리고 그렇게하는 것은 개인적인 선호입니다.

그러나 데이터 구조 관점에서 두 가지 모양이 동일 함에도 불구하고 엔터티와 GraphQL 개체 (또는 NestJS 용어로 데이터 전송 개체 또는 DTO)는 다른 목적을 가지고 있음을 알고 있으므로 빨리 배울 것입니다. 또한 어떤 상황에서는 하나에서 다른 것으로 변환해야 할 필요가 있으며 그렇게하려면 둘이 분리되어야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관