티스토리 뷰
부끄럽지만 Validation anotation 을 사용하면서 아래와 같이
NotNull은 null만 체크하고 NotEmpty는 ""만 체크하는 줄 알고 아무 생각없이 사용했습니다.
@NotEmpty @NotNull
@JsonProperty("phoneNumber")
private String phoneNumber;
@NotEmpty @NotNull
@JsonProperty("privateYn")
private String privateYn;
처음에는 이렇게 해도 잘 검증이 되어 사용하다가 privateYn 변수의 타입을 boolean으로 바꿀일이 있었습니다.
@NotEmpty @NotNull
@JsonProperty("phoneNumber")
private String phoneNumber;
@NotEmpty @NotNull
@JsonProperty("privateYn")
private boolean privateYn;
컴파일 시 HV000030 : No validator could be found for constraint
Validation error: “No validator could be found for type: java.lang.Boolean
에러가 발생했고 찾아 보니 @NotEmpty는 String과 collection 타입에만 적용되기 때문에 boolean은 안된다는 것을 알게 되었습니다ㅠ
또한 굳이 @NotEmpty와 @NotNull을 함께 쓰지 않아도 되는 걸 알게 됐습니다.
javax.validation.constraints
@NotNull
The annotated element must not be null. Accepts any type.
모든 데이터 타입에 대해 null을 허용하지 않습니다.
출처:https://javaee.github.io/javaee-spec/javadocs/javax/validation/constraints/NotNull.html
@NotEmpty
The annotated element must not be null nor empty. Supported types are:
CharSequence (length of character sequence is evaluated)
Collection (collection size is evaluated)
Map (map size is evaluated)
Array (array length is evaluated)
null과 ""를 허용하지 않습니다.
출처:https://javaee.github.io/javaee-spec/javadocs/javax/validation/constraints/NotEmpty.html
@NotBlank
The annotated element must not be null and must contain at least one non-whitespace character. Accepts CharSequence.
null과 ""와 " "(빈공백문자열)를 허용하지 않습니다.
출처:https://javaee.github.io/javaee-spec/javadocs/javax/validation/constraints/NotEmpty.html
최종수정
@NotEmpty
@JsonProperty("phoneNumber")
private String phoneNumber;
@NotNull
@JsonProperty("privateYn")
private boolean privateYn;
++)
위 변수에 추가로 사용해보면 좋을 것 같은 validation anotation입니다.
@AssertTrue
@AssertFalse
true인지 false인지 검사. null은 체크하지 않음
@Pattern
값이 정규표현식에 일치하는지 검사. null은 체크하지 않음
'jvm언어관련 > java' 카테고리의 다른 글
java.lang.UnsupportedClassVersionError (0) | 2019.09.17 |
---|---|
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure (0) | 2019.07.23 |
Catch Timeout Exception (0) | 2019.05.16 |
이것이 자바다 -chapter05 : 참조 타입 (0) | 2019.04.21 |
이것이 자바다 -chapter04 : 조건문과 반복문 (0) | 2019.03.30 |
- Total
- Today
- Yesterday
- MSSQL
- 그레이들
- Slack
- update query mutiple row
- 이것이 자바다
- effectivejava
- 업데이트 쿼리
- visual studio code
- update query
- update set multiple
- 몽고DB 완벽가이드
- 슬랙
- vue.js
- java
- 슬랙봇
- multiple row update
- SpringBoot
- 싱글턴
- update query set multiple
- spring-boot-starter-data-redis
- springboot https
- update query multi row
- 뱅셀 유전자
- 뱅크샐러드 유전자
- 슬랙 /
- update set multi
- 이펙티브자바
- 다중 업데이트
- 뱅크샐러드
- gradle
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |