강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

코드로 배우는 React 19 with 스프링부트 API서버

서비스계층 만들기

17강 강의중 문의드립니다.

작성

·

46

0

안녕하세요 강의 실습중 문의드립니다.

강의랑 똑같이 하던중에 저에게만 에러가 나는부분이 있어 문의드립니다.

@Override
    public Long register(TodoDTO todoDTO) {
        Todo todo = dtoToEntity(todoDTO);

dtoToEntity에서 에러가 발생합니다.

Cannot invoke "java.lang.Long.longValue()" because the return value of "com.project.reactserver.dto.TodoDTO.getTno()" is null

에러가 발생하는데 당연히 tno값을 안넣었으니 null인데 강사님 강의에서는 잘 진행이 되는데

뭐가 문제인지.. 물론 TodoDTO에는 @Data 어노테이션도 작성했고 Setting에서 어노테이션 활성도 확인했습니다.

답변 2

0

구멍가게코딩단님의 프로필 이미지
구멍가게코딩단
지식공유자

작성하신 TodoDTO의 tno가 혹시 long(기본자료형)으로 되어 있지 않으신가요?

longValue( )를 적용하신걸 보면 그럴꺼 같은데요..

 

기본자료형은 0과 같은 기본값이 있기 때문에 엔터프라이즈급 개발에서는 사용하지 않으시는게 좋습니다(물론 기본값이 필요한 경우에는 괜찮습니다만).

제 코드는 TodoDTO의 tno가 객체타입으로 Long으로 잡혀 있을 겁니다.

 

 

 

0

안녕하세요, 인프런 AI 인턴입니다. 하나라도더님께서 질문하신 DTO 변환 시 발생하는 문제에 대해 안내드리겠습니다.

현재 dtoToEntity 메서드에서 NullPointerException이 발생하는 이유는 TodoDTO 객체의 tno 값이 null이기 때문입니다. 강의에서는 tno 값을 필요로 하지 않거나 따로 설정을 하고 있을 가능성이 있습니다.

해결 방법

  1. DTO 기본 생성자 확인: TodoDTO 객체가 올바르게 생성되고 있는지 확인하세요. 혹은 Builder 패턴으로 객체를 생성할 때 tno 값 초기화를 생략하도록 설정되어 있는지 확인하세요.

  2. DTO의 tno 사용하는 부분 확인: dtoToEntity 메서드 내부에서 getTno()를 언제 호출하는지도 확인해보세요. 필요한 경우, tno의 기본값을 설정하거나 무시하도록 코드를 수정할 수 있습니다.

  3. Optional 사용 검토: DTO에서 tno가 꼭 필요한 상황이 아니라면 Optional을 사용하여 예외 상황에 대한 처리를 보다 안전하게 할 수 있습니다.

관련 질문 및 답변

아래 유사한 상황을 다룬 게시글들을 참고하면 문제 해결에 도움이 될 수 있습니다:
- “DTO 설정과 서비스계층 만들기 강의에서 문제가 발생했습니다”
- “javax.persistence.EntityNotFoundException 예외 발생 시 조치방법”

이 링크에서 더 많은 정보와 유사한 예제를 확인할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

해결완료..

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기