본문 바로가기

각종 설치Issue & Solution & Enlightenment

Request processing failed; nested exception is java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "com.flexy.boardback.respository.resultSet.GetBoardResultSet.getBoardNumber()" is null

==>> 요청 처리에 실패했습니다. 중첩 예외는 java.lang.NullPointerException입니다. "com.flexy.boardback.respository.resultSet.GetBoardResultSet.getBoardNumber()"의 반환 값이 null이므로 "java.lang.Integer.intValue()"를 호출할 수 없습니다.

 

드디어 나도 그 악명높은 NullPointerExeption을 만나게  되었다.

 

문제를 해결하기 위해서 https://flexyduck.tistory.com/499  이 내용에 대한 복습부터 한다.

간단하게 요약하면 JPA에서 네이티브 쿼리를 사용해야 하는 상황이다. 아래의 코드처럼 쿼리문에는 board_number라고 되어 있고 GetBoardResultSet에는 getBoardNumber로 보드넘버에 대한 철자가 서로 맞지 않는 상황인것이다.

그래서 오류가 "com.flexy.boardback.respository.resultSet.GetBoardResultSet.getBoardNumber()"의 반환 값이 null "이라고 오류가 뜬 것이다. 즉 위의 board_number를 boardNumber로 바꾸어 주면 문제는 해결된다.

(위의 코드에서 write_datetime을 writeDatetime으로, nickname을 writerNickname으로 변경하면 null값이 나오는 것을 막을 수 있다. 다만 이것을 수정하지 않고도 오류가 발생하지 않았던 이유는 이것이 데이터를 가져오는데 필수적인 데이터가 아니었ㄱ 때문이다. 보드넘버같은 경우는 데이터를 가져오기 위한 필수정보이므로 토씨하나 틀리지 않고 적어줘야 오류를 해결할 수 있었던 것이다.)

 

아래는 수정이 완료된 네이티브 쿼리