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

작성자 없음

작성자 정보가 삭제된 글입니다.

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

date를 인식 못하는 문제

해결된 질문

작성

·

295

0

엔티티

@Entity()
@ObjectType()
export class Reservation {
    @PrimaryGeneratedColumn('uuid')
    @Field(() => String)
    reservationId: string;

    @Column({ nullable: false })
    @Field(() => Date)
    startDate: Date;

    @Column({ nullable: false })
    @Field(() => Date)
    endDate: Date;

    @Column({ nullable: false })
    @Field(() => Int)
    usersNumber: number;

    @Column({ nullable: false })
    @Field(() => Int)
    lengthOfStay: number;

    @Column({ nullable: false })
    @Field(() => Int)
    price: number;

    @ManyToOne(() => Member)
    @JoinColumn({ name: 'memberId' })
    @Field(() => Member)
    member: Member;

    @ManyToOne(() => Campground)
    @JoinColumn({ name: 'campgroundId' })
    @Field(() => Campground)
    campground: Campground;

    @ManyToOne(() => Tent)
    @JoinColumn({ name: 'tentId' })
    @Field(() => Tent)
    tent: Tent;

    @DeleteDateColumn()
    deletedAt: Date;
}

 

데이터 생성 DTO

@InputType()
export class CreateReservationInput extends OmitType(
    Reservation,
    ['reservationId', 'member', 'campground', 'tent'],
    InputType,
) {
    @Field(() => String)
    memberId: string;

    @Field(() => String)
    campgroundId: string;

    @Field(() => String)
    tentId: string;
}

 

 

 

위 코드에 graphQL 요청시 에러가 발생합니다.

mutation { 
  createReservation (
    createReservationInput: { 
      startDate: "2023-01-01" 
      endDate: "2023-06-06" 
      usersNumber: 5 
      lengthOfStay: 10 
      price: 5 
      memberId: "lhw3542" 
      campgroundId: "d35d3972-5c07-47d7-94a2-23c784f0a27e" 
      tentId: "3ae33a7c-c898-4b66-b110-02b4f8c96398" 
    } 
  ) { 
    reservationId 
    startDate 
    endDate 
    usersNumber 
    lengthOfStay 
    price 
    member { memberId } 
    campground { campgroundId } 
    tent { tentId } 
  }
}

 

Field 'startDate' doesn't have a default value

날짜 형식을 읽지 못하는 것 같은데 무엇이 잘못된 걸까요?

아래와 같이 DTO에 직접 써줘도 인식을 못하고 있습니다.

    @Field(() => Date)
    startDate: Date;

    @Field(() => Date)
    endDate: Date;

답변 1

0

노원두님의 프로필 이미지
노원두
지식공유자

안녕하세요! Haewoong님!

해당 에러 메시지는 resolver에서 받은 startDate가 mysql에 저장되지 못하고 있어서 발생된 mysql 에러 메시지 입니다!

따라서, dto 및 graphql은 정상적으로 통과되었을 것이며, 통과된 데이터가 왜 mysql에 저장되지 못하고 있는지 해당 부분을 확인해 보시면 좋을 것 같습니다!^^

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기