오라클 마이그레이션을 진행하면서 이것저것 테스트를 진행하다가 NullPointException 에러가 발생하였다.
확인해 본 결과 문자열 비교하는 부분에서 발생하였다.
str1.equals(str2) 비교 시 str1이 null 일 때 NullPointException이 발생하였다.
str1이 nullable 한 경우 equals 앞에 있으면 에러가 발생할 수 있다.
만약 str2가 nullable 하지 않은 string이라면 equals 앞으로 옮기는 게 좋을 것 같다.
이때 str1이 null 이면 String instance가 아니기 때문에 ==으로 비교한 결과를 리턴한다.
만약 str1, str2 둘 다 nullable 하다면 어떻게 해야 할까?
Objects의 static 메소드 equals를 사용하면 된다.
Objects.equals(str1, str2)
코드를 수정하지 않고 데이터베이스의 기본 값을 공백 문자열로 지정하고 싶었는데 오라클은 공백을 허용하지 않는다고 한다. 그래서 nullable 하지 않은 str2를 equals 앞으로 코드를 수정하였다.
이로 인해 오라클은 공백을 허용하지 않는 것을 확인하였다. 그리고 공백도 null로 저장된다.
참고
반응형
'자바' 카테고리의 다른 글
Entity, DTO, VO (2) | 2023.10.31 |
---|---|
Java - repeat() (1) | 2023.10.25 |
JavaBean 규약 (1) | 2023.10.20 |
JAVA 여러 버전 사용하기 (0) | 2023.09.13 |
JAVA 설치하기(window/mac) (0) | 2023.09.13 |