작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
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
값을 필요로 하지 않거나 따로 설정을 하고 있을 가능성이 있습니다.
DTO 기본 생성자 확인: TodoDTO
객체가 올바르게 생성되고 있는지 확인하세요. 혹은 Builder 패턴으로 객체를 생성할 때 tno
값 초기화를 생략하도록 설정되어 있는지 확인하세요.
DTO의 tno
사용하는 부분 확인: dtoToEntity
메서드 내부에서 getTno()
를 언제 호출하는지도 확인해보세요. 필요한 경우, tno
의 기본값을 설정하거나 무시하도록 코드를 수정할 수 있습니다.
Optional 사용 검토: DTO에서 tno
가 꼭 필요한 상황이 아니라면 Optional
을 사용하여 예외 상황에 대한 처리를 보다 안전하게 할 수 있습니다.
아래 유사한 상황을 다룬 게시글들을 참고하면 문제 해결에 도움이 될 수 있습니다:
- “DTO 설정과 서비스계층 만들기 강의에서 문제가 발생했습니다”
- “javax.persistence.EntityNotFoundException 예외 발생 시 조치방법”
이 링크에서 더 많은 정보와 유사한 예제를 확인할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
해결완료..