티스토리 뷰
🎈 @NotNull vs nullable = false 은 무슨 차이가 있나?
유효성 검사를 프로젝트에 추가하려다가 코드를 보니,
@Column(nullable = false, length = 20, name = "name")
private String name;
위의 코드를 발견했다. @Column 어노테이션의 nullable 속성이 false로 되어있다.
프로젝트를 실행하면

이렇게 not null의 조건이 붙은채 테이블이 생성된다.
해당 필드를 @NotNull을 붙여서 변경해보자
@NotNull
private String name;
@PostMapping("/user")
public void saveUser(@Valid @RequestBody UserCreateRequest request) {
userService.saveUser(request);
}
@Valid 어노테이션을 추가해주었다. 위의 코드도 마찬가지로 not null의 조건을 붙여서 테이블을 만들어준다.
그럼 뭐가 다르지?
@Column(nullable = false)는 엔티티의 필드가 null이어도 정상 작동을 하다가, DB로 쿼리가 도착할 때 예외가 발생한다.
@NotNull은 엔티티의 필드가 null이면 그 순간 예외가 발생한다.
즉, @NotNull이 더 빨리 예외를 캐치해서 발생시키는 것이다.
'springboot' 카테고리의 다른 글
[JPA] ddl-auto 옵션 (1) | 2024.11.18 |
---|---|
[SETTING] intellij에서 JAVA JDK 버전 바꾸기 (0) | 2023.11.30 |
[용어] profile (0) | 2023.10.28 |
error-[errno: 150] "foreign key constraint is incorrectly formed" (0) | 2023.08.06 |
error-Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException (0) | 2023.08.06 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- upperBound
- 메인메소드
- N+1문제
- checkedException
- 일급컬렉션
- 유효성 검사
- @Spring
- Optional
- @NoArgsConstructor
- lowerBound
- springboot
- 백준
- StreamAPI
- 자바
- uncheckedException
- Thymeleaf
- ddl-auto
- 생성자
- null
- 티스토리챌린지
- NPE
- 동등성
- JPA
- Spring
- id생성전략
- @ConfigurationProperties
- 이진탐색
- 오블완
- Java
- @Value
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함