값이 안변해요
학습 관련 질문을 최대한 상세히 남겨주세요!
고민 과정도 같이 나열해주셔도 좋습니다.
먼저 유사한 질문이 있었는지 검색해보세요.
인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
@Test
void updateTest() {
update(184717674569289728L);
ArticleResponse response = read(184717674569289728L);
System.out.println("response = " + response);
}
void update(Long articleId) {
restClient.put()
.uri("/v1/articles/{articleId}", articleId)
.body(new ArticleUpdateRequest("hi 2", "my content 22"))
.retrieve();
}
@Getter
@AllArgsConstructor
static class ArticleCreateRequest {
private String title;
private String content;
private Long writerId;
private Long boardId;
}
@Getter
@AllArgsConstructor
@NoArgsConstructor
static class ArticleUpdateRequest {
private String title;
private String content;
}
response = ArticleResponse(articleId=184717674569289728, title=hi, content=my content, boardId=1, writerId=1, createdAt=2025-05-25T02:22:06, modifiedAt=2025-05-25T02:22:06)
이렇게 값이 안변하는 이유가 있을까요?
@PutMapping("/v1/articles/{articleId}")
public ArticleResponse update(@PathVariable Long articleId, @RequestBody ArticleUpdateRequest request) {
return articleService.update(articleId, request);
}
답변 2
1
kimoon Hong님, 안녕하세요!
스프링부트 애플리케이션에서 API가 정상 호출되고 있는지 디버깅해보시면 좋을 것 같습니다!
짐작가는 사항으로는, 혹시 스프링부트 버전이 강의와 다를까요?
최신 버전에서는,
restClient.put()
.uri("/v1/articles/{articleId}", articleId)
.body(new ArticleUpdateRequest("hi 2", "my content 22"))
.retrieve();retreive까지만 코드 수행하면 정상적으로 API 호출이 안되더라고요!
restClient.put()
.uri("/v1/articles/{articleId}", articleId)
.body(new ArticleUpdateRequest("hi 2", "my content 22"))
.retrieve()
.toBodilessEntity()서버 애플리케이션에 요청 자체가 들어가지 않는 상황이라면,
위처럼 toBodilessEntity까지 호출해보시면 해결될지도 싶습니다!
0
안녕하세요, 인프런 AI 인턴입니다. kimoon Hong님.
스프링 부트 기반 API에서 특정 articleId에 대한 업데이트 요청을 수행할 때, 값이 변경되지 않는 것에 대한 문제를 겪고 계신 것 같습니다. 여러 이유로 인해 값이 변경되지 않을 수 있습니다. 아래에는 그 원인과 해결 방안을 제시해 드리겠습니다.
가능한 원인과 해결 방법
서비스 로직 문제:
articleService.update(articleId, request)메소드 내에서 올바르게 데이터가 변경되고 저장되고 있는지 확인해야 합니다. 이 메소드에서 실제로 정보가 업데이트되는지, 데이터베이스에 제대로 반영되고 있는지 확인해 보세요.
JPA 영속성 문제:
- 만약 JPA를 사용하고 있다면, 엔티티가 영속성 컨텍스트에 의해 관리되고 있는지 확인하세요. update 메서드 내에서
@Transactional어노테이션이 제대로 동작하고 있는지, 그리고 데이터베이스 변경 사항이 commit되고 있는지를 체크해야 합니다.
- 만약 JPA를 사용하고 있다면, 엔티티가 영속성 컨텍스트에 의해 관리되고 있는지 확인하세요. update 메서드 내에서
HTTP 응답 캐시 문제:
- 경우에 따라 HTTP 클라이언트가 이전 응답을 캐시하고 있을 수도 있습니다. 캐시를 무효화하거나 새로운 요청을 보낼 때마다 응답을 갱신하도록 설정을 변경해 보세요.
- 경우에 따라 HTTP 클라이언트가 이전 응답을 캐시하고 있을 수도 있습니다. 캐시를 무효화하거나 새로운 요청을 보낼 때마다 응답을 갱신하도록 설정을 변경해 보세요.
API 경로 및 파라미터 설정 문제:
@RequestBody를 통해 전달되는ArticleUpdateRequest객체의 필드가 올바르게 매핑되고 전달되고 있는지를 확인하세요. 또한,PutMapping의 경로가 제대로 설정되어 있는지 검토해 보세요.
기존 유사 답변
비슷한 문제가 발생했던 다른 수강생들의 질문을 링크로 제공해 드리니 참고하시기 바랍니다:
링크된 게시글에서 다양한 방법으로 문제를 해결했던 예시를 확인하실 수 있습니다. 특히 JPA나 데이터베이스와 연관된 내용을 주의 깊게 읽어보시기를 권장드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 문제 해결 방안을 제공하고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.
0
31
1
consumer에서 에러가 발생할 경우 데이터 유실 문의
0
48
2
게시글 테스트 데이터 삽입
0
51
2
정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?
0
104
2
좋아요 기능 정합성 보장 방법
0
98
2
좋아요 동시성처리 최적의 선택?
1
136
2
프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해
0
92
2
안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.
0
60
1
조회수 조회 로직 질문
1
67
2
비로그인 유저도 어뷰징 방지 정책
1
73
2
CommentServiceTest의 테스트 로직 질문
0
54
2
무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문
1
74
2
path 쿼리 관련 질문드립니다!
0
60
2
antigravity 에디터를 쓰신다면 종료해주세요
1
123
0
프로젝트 구조
0
88
2
article_like_count api test
0
79
2
이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.
0
104
2
[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제
0
92
2
findByPath에서 articleId로도 검색을 해야 할 것 같아요.
0
92
3
jpa ddl-auto none을 하는 이유와 join 방법
0
97
2
팩터리 메소드와 response 객체 사용 이유가 궁금합니다!
0
90
2
커서 기반 페이지네이션 과 무한 스크롤링
0
110
2
게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기
0
97
2
멀티 모듈이 아닌 MSA 환경에서 common
0
156
2





