inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

상품 수정

수정시에 질문있습니다!!!! Editor??

199

dionisos198

작성한 질문수 42

0


[질문 내용]
여기에 질문 내용을 남겨주세요.

 

저는 지금까지 수정을 시도할때

changeContentsAndtitle 이런 식으로 엔티티단에서 수정을 시도했는데

 

https://velog.io/@gundorit/Spring-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EB%90%9C-CRUD-Update

 

이 블로그에 따르면 그것은 별로 안좋고 Editor 를 선언해서 하면 좋다는 식으로 얘기하고 있습니다.

근데 이렇게 하면 영한님이 얘기하셨던 얘기 중에 그런 이야기가 있었습니다.

 

DTO 는 엔티티를 참조해도 되는데 , 엔티티는 DTO 를 참조하지 말라고 하셨습니다.

위 블로그에서는 Entity 에서 DTO 를 참조하지는 않는데

Entity 에서 UpdateEditor 를 선언하고 있는데 이런 부분에 문제는 없을까요?? 영한님도 이런 스타일로 하시나요?

java spring 웹앱 spring-boot jpa

답변 1

0

나무늘보

안녕하세요. dionisos198님, 공식 서포터즈 코즈위버입니다.

블로그에서 정리한 내용은 불변 객체와는 다른 이야기 같습니다. 엔터티에서 Setter를 통해 데이터를 함부로 수정할 수 있으면 안된다는 내용이 중요한 것 같네요.

엔터티 모든 속성에 무조건적으로 setter 를 제공하는 것에는 반대하나 사용자의 액션에 따라 변할 수 있는 속성이라면 setter를 부분적으로 제공해도 무리는 아니라고 생각합니다. 저의 경우는 setter 를 직접적으로 제공하지는 않으나 deleteOrder(); changeOrderReceiverAddress(Address); 등등의 속성 변경 메서드를 제공합니다(엔터티가 Order 라고 가정한 예시입니다).

사용자(OrderService)는 Order엔터티에게 delete/change 등을 요청할 수 있습니다. 그러나 이를 어떻게 처리할지 혹은 받아들이지 말지는 Order의 책임이라고 봅니다. deleteOrder() 메서드 내에는 주문의 삭제여부값을 Y로 돌리는 코드와 주문삭제일시를 현재시간으로 업데이트 하는 코드와 함께 주문을 삭제로 돌리는게 합당한지(합당하지 않으면 거절의 뜻으로 오류를 던집니다)를 판단하는 코드를 묶었습니다.

특정한 액션에 필요한 값 변경은 Order 엔터티가 가장 잘 알고 있으며, 지금 내 상태를 바꿀수 있을지 없을지도 Order 엔터티가 가장 잘 알고 있기 때문입니다.

 

제 방법이 정답은 아니니 다양한 개발자들의 견해를 들어보시고, 프로젝트에 맞는 방법을 선택하시면 좋을것 같습니다. 감사합니다.

1

dionisos198

제가 잘못이해했을수도 있는데 위 블로그 내용은 changeOrder.. 이런식으로 수정하지 말라는 내용같아요!

sdk 설정 오류

0

53

2

오탈자 - @Transactional

0

56

1

src/test/resources 테스트 경로 문제

0

50

1

상품 등록후 H2 db 출력 순서 바꿀 수 있나요?

0

64

1

MemberRepositoryTest 실행오류

0

81

1

boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)

1

183

2

강의 마지막 QueryDSL 사용 부분 질문있습니다

1

142

2

클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.

0

51

1

도메인 모델 패턴 vs 트랜잭션 스크립트 패턴

0

71

1

기본 생성자

0

60

1

h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.

0

103

1

멤버서비스테스트 부분에서 막힙니다.

0

165

4

실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?

0

116

1

초반에 h2 다운로드 과정 꼭 필요한가요?

0

120

2

자신 필드에도 get으로 접근하는 이유가 있을까요?

0

114

1

24분 27초 연관관계 편의 메서드 위치

0

113

1

단건 주문만 가능하게 한건 의도한 부분이신가요?

0

109

2

빌드 툴, Gradle

0

59

1

h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다

0

77

2

Repository에서 EntityManager 주입 방식 차이

0

90

1

롬복과 사용자 정의 setter 메서드

0

73

1

주문 목록 조회 fetch join 질문드립니다

0

82

1

dirty checking 질문드립니다.

0

83

1

동시성 관련 질문입니다

0

75

1