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

나도 하고 싶어 개발자님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

상품 수정

영한님 말씀대로 dto를 적용해보았는데 이렇게 하는게 맞을까요?

작성

·

231

·

수정됨

0

=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

스크린샷 2024-05-31 오후 3.42.56.png스크린샷 2024-05-31 오후 3.43.14.png스크린샷 2024-05-31 오후 3.44.30.png그런데 이렇게 작성했을때 수정하고 제출을 하면
Caused by: java.lang.IllegalArgumentException: id to load is required for loading 오류가 뜹니다

답변 2

0

안녕하세요. 나도 하고 싶어 개발자님, 공식 서포터즈 y2gcoder입니다.

그리고 UpdateItemDTO 가 service 패키지에 있다면 지금 단계에서 너무 잘 적용하신 것 같습니다!
나중에 시스템이 복잡해지면 Form 객체와 서비스 단의 DTO 객체를 나누기도 한다는 점만 기억해주십쇼!

 아래의 AI 답변과 연관 링크들도 꼭 읽어보시길 권해드립니다!

감사합니다.

저렇게 코드를 작성했을떄
Caused by: java.lang.IllegalArgumentException: id to load is required for loading 라는 오류가뜨는데 어디가 문제일까요?


>>>컨트롤러에서 updateItem메소에 form과 같이 id를 넘겨주니 해결됐습니다.
스크린샷 2024-05-31 오후 4.16.36.png수정페이지에서 제출을 하게되면 컨트롤러의 updateItem의 (updateItemDTO form)에 id도 담기는것이 아닌가요?

updateItem에 id 필드를 넣었고, 매핑을 하기 위해서는
수정 페이지에서도 작업이 필요합니다.

수정 페이지의 form 태그 아래에 다른 데이터와 마찬가지로 id에 대한 input 태그를 만들어주셔야 합니다!

이런 부분은 다음 링크(클릭)과 같이 html 태그와 이벤트를 학습해주시면 바로 이해하실 거라 생각합니다

0

안녕하세요, 인프런 AI 인턴입니다.

질문자님의 내용을 기반으로, 변경 감지와 Data Transfer Object(DTO) 사용에 관련된 예시 및 설명을 포함한 유사한 질문을 추려보았습니다. DTO를 활용하여 변경 감지 기능을 구현하는 방법에 대한 질문과 답변들이 있습니다.

이 예시에서는 DTO를 사용해서 변경 감지를 구현하는 방법에 대한 논의가 이루어졌습니다. 변경 감지는 JPA에서 엔티티의 변경을 자동으로 데이터베이스에 반영하는 기법이고, DTO는 계층 간 데이터 교환을 위해 사용되는 객체입니다. 변경 감지 기능을 병합보다 추천하는 상황에서 DTO를 활용한 예제 코드가 제시되었고, 해당 예제는 질문자님께도 유용한 정보를 제공할 수 있습니다.

이 게시글에서는 UpdateItemDto 사용 방법과 컨트롤러에서 DTO로 데이터를 넘기는 방법에 대한 질문이 있었습니다. 서비스 계층에서 DTO를 사용하여 엔티티를 업데이트하는 방식에 대한 설명과 함께 Controller에서 DTO로 데이터를 어떻게 넘길 수 있는지에 대한 답변이 포함되어 있습니다.

DTO를 활용한 업데이트 기능 구현에 대한 질문과 답변으로, 직접 DTO를 작성하고, 이를 사용하여 엔티티의 상태를 변경하는 방법에 대해 담겨 있습니다. 특히, 서비스 계층에서 DTO를 활용해 데이터를 전달하고 엔티티를 업데이트하는 과정이 구체적으로 설명되어 있습니다.

질문하신 내용은 위의 예시들과 유사하게 DTO를 활용하여 Spring Boot와 JPA를 사용한 웹 애플리케이션 개발에서 변경 감지 기능을 구현하는 방법에 관한 것임을 확인할 수 있습니다. 각 링크에서 제공되는 자세한 설명과 코드 예시들은 질문자님이 구현하신 내용을 검토하는 데 도움이 될 것입니다.

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