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

Byeonggil Park님의 프로필 이미지
Byeonggil Park

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

영속성 컨텍스트 2

setter 없이 영속성 컨텍스트에서 update 하는 방법이 있을까요??

작성

·

828

0

안녕하세요 강의 정말 잘들었습니다.

setter를 사용하여서 영속성 컨텍스트에서 update 문을 날렸었는데 만약에 setter 없이 자동으로 업데이트하는 방법이 있을까요?

setter를 사용하는 것이 불변성을 지키는데에 좋지 않다고 생각하는데 그렇다고 객체를 새로 생성해서 넣는 방법은 영속성 컨텍스트의 이점이 없다고 느껴집니다. 

setter 없이 최대한 불변성을 지키면서 업데이트 하는 방법이 있는지 아니면 업데이트 할 부분에 대해서만 setter를 사용하는 것이 좋은지 궁금합니다!

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. Byeonggil Park님

어떻게 하든 결국 데이터를 변경하려면 엔티티 내부의 멤버 변수 값을 변경해야 합니다.

제가 권장하는 방법은 setter를 사용하기 보다는 비즈니스 의미가 있는 메소드 이름을 사용하는 것입니다.

예를 들어서 주문의 상태가 접수라면

order.accpet(파라미터) 이런식으로 비즈니스 의미가 명확한 이름을 짓는 것이지요. 그리고 해당 메소드 안에서 데이터를 변경하는 것입니다.

도움이 되셨길 바래요^^

class Order {

  status = ?;

  void accept(파라미터) {

    status = ACCEPT;

  }

}

Byeonggil Park님의 프로필 이미지
Byeonggil Park

작성한 질문수

질문하기