HANDA개발
HANDA개발공부
HANDA개발
전체 방문자
오늘
어제
  • HANDA_list
    • 취업일지
    • 일상
    • TIL
    • Linux
    • RabbitMQ
    • Spring
      • Security
      • Batch
      • Project
    • ERROR
    • DB
      • Oracle
      • PostgreSQL
    • JUnit
    • JAVA
    • AWS
    • OAuth2.0
    • Redis
    • API
    • Jenkins
    • Nigix
    • CS
    • 코테준비
      • 자료구조
      • 알고리즘
    • 학교수업
    • 디자인패턴

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 공부준비
  • 다른파라미터
  • SpringBatch
  • Job
  • JAVA명령어
  • Parameter
  • Spring
  • MQ
  • EAI
  • batch
  • valid어노테이션
  • @Valid
  • garbaage
  • mybatis
  • 데이터베이스
  • 재실행
  • gson
  • 역직렬화
  • 어노테이션
  • 애플코딩
  • oracle
  • JVM
  • cmd
  • 스프링배치
  • error
  • 명령어
  • 프로그래머스
  • 상태관리
  • 프로시져호출
  • java실행과정

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HANDA개발

HANDA개발공부

TIL

@Valid가 동작하지 않은 오류

2024. 4. 9. 17:40
    @PostMapping("/save-coupon")
    @Operation(summary = "쿠폰 저장", description = "쿠폰목록에서 선택한 쿠폰리스트를 쿠폰함에 저장한다.")
    public CommonResult<Object> saveCpnList(@Valid @RequestBody List<SaveCpnListInDto> inDto) {

        mVouchService.saveCpnList(inDto);
        return CommonResult.ok();
    }
}

 

🤔 오류현상

파라미터를 List로 받았더니 Valid 어노테이션이 동작하지 않는다.

 

✔ 해결방법

    @PostMapping("/save-coupon")
    @Operation(summary = "쿠폰 저장", description = "쿠폰목록에서 선택한 쿠폰리스트를 쿠폰함에 저장한다.")
    public CommonResult<Object> saveCpnList(@Valid @RequestBody SaveCpnListInDto inDto) {

        mVouchService.saveCpnList(inDto);
        return CommonResult.ok();
    }
}

 

@Data
public class SaveCpnListInDto {

  @Valid
  private List<SaveCpnListDto> SaveCpnListDtoList;

}

@Data
public class SaveCpnListDto {

  //변수 정의

}​

 

파라미터를 감싸고 있던 List를 거두고 별도의 변수  class를 생성해 파라미터 클래스 내부에

List를 넣어놓고 @Valid를 붙여준다.

 

 

💎 해결방법 2

근본적인 해결책이 있었다.

controller 클래스에 @Validated 어노테이션을 붙이면 클래스 단위로 유효성 검증이 가능해서

@Valid를 붙인 List<>단위의 파라미터도 유효성체크를 할 수 있다.

 

@ResController
@Validated
@RequiredArgsConstructor
public class UserController {

	public void addUser(@Valid AddUserRequest addUserRequest) {
		...
	}
}
출처: https://mangkyu.tistory.com/174 [MangKyu's Diary:티스토리]​

 

@Valid와 @Validatied 의 차이 : https://mangkyu.tistory.com/174 참조

'TIL' 카테고리의 다른 글

어노테이션 커스텀  (0) 2023.05.18
@valid 와 @validated 의 차이 , 그리고 JSR-303 VS 스프링 어노테이션  (0) 2023.05.18
Java - HashMap 정렬, 4가지 방법  (0) 2023.04.10
암호화 알고리즘 _ AES알고리즘  (0) 2023.03.02
sts에서 pom.xml 오류가 나는 경우  (0) 2023.01.13
    'TIL' 카테고리의 다른 글
    • 어노테이션 커스텀
    • @valid 와 @validated 의 차이 , 그리고 JSR-303 VS 스프링 어노테이션
    • Java - HashMap 정렬, 4가지 방법
    • 암호화 알고리즘 _ AES알고리즘
    HANDA개발
    HANDA개발

    티스토리툴바