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

onlymoon님의 프로필 이미지
onlymoon

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

회원 수정 API

OSIV true 상태에서 Controller에서 Entity가 수정되는 현상

작성

·

206

·

수정됨

0

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

[질문 내용]
OSIV가 true인 상태에서는 @Transaction이 설정된 Service계층까지만 수정이 가능하고, Controller에서는 수정이 불가능하다고 알고있는데,

Controller에서 Entity를 수정했는데, DB가 변경됩니다.

Entity변경이 마지막이고, 추가로 Service를 호출하지는 않았습니다.

어떤 설정이 잘못되어서 그런지 알려주시면 감사하겠습니다.

<예제>

public GoodsGetResponseDto getGoods(GoodsGetRequestDto goodsReq) {

log.info("getGoods(): goodsReq={}", goodsReq);

List<Goods> goods = goodsService.findGoods(goodsReq);

int goodsCnt;

goodsCnt = goods.size();

log.info("goods.size() 갯수 = {}", goodsCnt);

if (Objects.equals(goodsReq.getImageYn(), "Y")) {

log.info("With imageYn={}", goodsReq.getImageYn());

}

else {

goods.stream().forEach(o -> o.setImagePath("")); ==> Dto에 imagePath 값을 넘기지 않으려고 추가한 이 부분 때문에 DB가 변경됨.

}

return new GoodsGetResponseDto(goods, "200", goodsCnt);

}

 

답변 1

0

안녕하세요. onlymoon님, 공식 서포터즈 David입니다.

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요


추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명


링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

onlymoon님의 프로필 이미지
onlymoon
질문자

분명히 DB를 지웠었는데, 다시 재현을 하려고하니 발생하지 않네요...

다시 발생하면 문의하도록 하겠습니다.

감사합니다.

onlymoon님의 프로필 이미지
onlymoon

작성한 질문수

질문하기