ERROR

[Spring] Name for argument of type [java.lang.long] not specified

alsruds 2024. 1. 24. 23:05
name for argument of type [java.lang.long] not specified, and parameter name information not available via reflection. ensure that the compiler uses the '-parameters' flag.

 

Gradle 설정을 이렇게 바꾸니까 갑자기 에러가 나는 거 있죵

 

검색해보니까 Gradle 로 되어 있을 땐 알아서 얘가 걸러주는데 이걸 바꿔서 그렇다..~ 나 

암튼 API 요청을 받을 때 parameter 값을 명시해주지 않아서 그랬습니당

 

  • 기존 코드
    // 게시글 리뷰 등록
    @PostMapping(value = "/{postId}/review", consumes = "multipart/form-data")
    public ApiResponse<ReviewResponseDTO.addReviewResponseDTO> addPostReview(@PathVariable("postId") Long postId,
                                        @RequestPart(required = false) ReviewRequestDTO.addReviewDTO request,
                                        @RequestPart(required = false) MultipartFile file) throws IOException {
        ...
    }

➡️ @RequestPart 로 받아오는 DTO 값의 파라미터명이 명시되어 있지 않다

➡️ @RequestPart 로 받아오는 MultipartFile 의 파라미터명이 명시되어 있지 않다

 

  • 변경한 코드
    // 게시글 리뷰 등록
    @PostMapping(value = "/{postId}/review", consumes = "multipart/form-data")
    public ApiResponse<ReviewResponseDTO.addReviewResponseDTO> addPostReview(@PathVariable("postId") Long postId,
                                        @RequestPart(name = "ReviewRequestDTO", required = false) ReviewRequestDTO.addReviewDTO request,
                                        @RequestPart(value = "file", required = false) MultipartFile file) throws IOException {
        ...
    }

➡️ name 이나 value 값을 명시해주면서 해결!