notnull을 붙여야하는 이유
int와 같은 원시타입에 null을 입력할 수 없잖아요
그래서 nullable = false를 추가하는게 안전하대요
근데 전 왜 그게 안전한건지 모르겠어요
만약에 에러가 터졌을때 저는 에러내용을 보고 null을 넣어서 에러가 난것을 파악할 수 있을거예요
근데 그게 nullable=false인데 null을 넣어서 에러가 난것인지, int와 같은 원시타입에 null을 넣어서 에러가 난것인지에 따라 차이가 있을까요? 에러출력내용은 비슷하게 뜰텐데요..ㅜㅜ
답변 1
1
안녕하세요. 김민지님, 공식 서포터즈 y2gcoder입니다.
@Column 애노테이션은 특성 상 데이터베이스 테이블의 해당 컬럼에 대한 정보에 대한 표시를 해주는 측면도 있습니다. 데이터베이스 테이블의 조건이 not null이기 때문에 우리 애플리케이션에서도 해당 컬럼의 not null 조건을 표시해주는 게 좋습니다. 이것은 명확하다는 측면에서 이점이 있습니다.
예를 들어 엔티티에는 int로 되어 있었고, int에는 null이 들어갈 수 없으니까 nullable 조건을 빼주었다고 가정하겠습니다. 추후에 다른 사람이 요구사항 등으로 해당 엔티티를 수정할 일이 생겼습니다. 그때 int 타입으로 되어있는 column에서 타입을 편의를 위해 Integer로 바꾸었다고 가정하면, 말씀하신 nullable 조건을 명시해주지 않았던 것이 원인으로 장애가 발생할 수도 있습니다. 바꾸는 사람은 해당 컬럼이 nullable하다고 생각하고 코드를 변경할 것이기 때문입니다.
혼자 하는 게 아닌, 다른 사람과 일하는 경우가 많은 개발자로서 명확한 코드를 짜는 게 중요하다고 생각합니다.
감사합니다.
실무 조언 관련 질문입니다.
0
41
1
H2데이터베이스 파일 생성
0
51
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
49
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
48
1
JPQL 메소드와 락
0
52
1
Delivery @OneToOne
0
57
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
89
2
UnsupportedOperationException 발생
0
82
3
H2 Database 연결이 안됩니다.
0
87
2
연관관계 매핑 질문드립니다.
0
82
2
h2데이터베이스 실행오류
0
105
2
persistence.xml
0
103
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
77
1
영속성 컨텍스트
0
62
1
JPA 프록시
0
89
1
Native Query와 MyBatis
0
63
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
82
1
임베디드 타입 예시 코드 관련 질문
0
112
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
90
3
인텔리제이 패키지 커서 단축키 질문
0
106
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
136
1
양방향 연관관계 시 연관관계 주인을 설정하는 이유
0
68
1
임베디드 타입과 MappedSuperClass의 차이점이 궁금합니다.
0
95
1
데이터베이스가 초기화되는 것 같아요
1
177
2





