No validator could be found for constraint 'jakarta.validation.constraints.NotEmpty' validating type 'java.lang.Long'. Check configuration for 'id'라는 에러 메시지는 @NotEmpty 어노테이션이 Long 타입의 필드나 속성에 적용되었을 때 발생합니다. 이 문제의 원인과 해결 방법을 살펴보겠습니다.
원인
- 잘못된 어노테이션 사용: @NotEmpty 어노테이션은 문자열(String), 컬렉션(Collection), 맵(Map), 배열(Array)과 같이 '비어 있지 않음'을 검증할 수 있는 타입에 사용됩니다. Long과 같은 숫자 타입에는 적합하지 않습니다.
- 타입 불일치: Long 타입은 null이거나 아니거나 두 상태만을 가질 수 있으며, '비어 있음'의 상태를 가질 수 없습니다. 따라서 @NotEmpty는 Long 타입에 대해 유효한 검증을 수행할 수 없습니다.
해결 방법
- 적절한 어노테이션 사용: Long 타입의 필드가 null이 아니어야 한다면, @NotNull 어노테이션을 사용해야 합니다.
-
javaCopy code@NotNull private Long id;
- 필드 타입 검토: 필드가 실제로 문자열이나 컬렉션과 같은 '비어 있지 않음'을 검증해야 하는 타입인지 확인하고, 필요하다면 타입을 변경합니다.
이러한 변경을 통해 @NotEmpty 어노테이션을 적절한 타입에 사용함으로써 발생하는 유효성 검증 문제를 해결할 수 있습니다.
'메모장' 카테고리의 다른 글
@QueryProjection으로 List초기화 하기 찾아보자 (0) | 2023.11.30 |
---|---|
코드 DTO로 인해 중복 없앨때 써보자 (0) | 2023.11.29 |
QueryDSL 에서 DTO데이터만 뽑아오기 (0) | 2023.11.23 |
Query DSL 같은 테이블 조인 (0) | 2023.11.23 |
고아객체 삭제 (0) | 2023.11.22 |