일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- algorithmtraining
- 프로그래밍언어
- 채권
- 책알남
- algorithmStudy
- algorithmTest
- 서평
- 백준알고리즘
- 자바
- 지혜를가진흑곰
- 알고리즘트레이닝
- 자바스크립트
- JavaScript
- 알고리즘공부
- 돈
- C
- 독서
- 투자
- C++
- 재테크
- 다독
- 성분
- Java
- 알고리즘 공부
- 주식
- 책을알려주는남자
- 프로그래머스 알고리즘 공부
- 화장품
- 독후감
- 경제
Archives
- Today
- Total
탁월함은 어떻게 나오는가?
엔티티(Entity)와 DTO에 long선언을 Long 으로 변경했을때 nullPointException 에러 발생 본문
[Snow-ball]프로그래밍(컴퓨터)/프로그래밍 실수
엔티티(Entity)와 DTO에 long선언을 Long 으로 변경했을때 nullPointException 에러 발생
Snow-ball 2021. 6. 5. 10:10반응형
문제발생 :
Entity와 DTO 부분에서 private long artistId; 라고 선언했었는데, Long으로 사용하기를 권장하는걸 알게되었다.
근거는 Long을 사용하면은 null을 사용할 수 있기떄문이다.
long을 사용하면 프리미티브 타입은 기본값이 0이기때문에 실제로 id값이 0인건지, 값이 없는건지 구분하기가 매우 어렵다고 한다. 사실 거의 알아내기 불가능아닐까..?
그런데 Wrapper 타입인 Long 이나 Integer를 쓰면 id가 없는 경우엔 확실하게 null이고, 그 자체로 id가 없다는걸 보장할 수 있게 된다.
Hibernate JPA 공식문서에서도 Wrapper타입을 권장하고 있다고한다.
We recommend that you declare consistently-named identifier attributes on persistent classes and that you use a nullable (i.e., non-primitive) type.
해결 방법 :
나의 경우에는 밑에처럼 nullable = false 를 추가해줬더니 해결이 됬다.
1
2
|
@Column(name = "artist_id", unique = true, nullable = false)
private Long artistId;
|
cs |
반응형
'[Snow-ball]프로그래밍(컴퓨터) > 프로그래밍 실수' 카테고리의 다른 글
Comments