Q. jpa에서 조회한 엔티티를 업데이트할 때 실무에선 어떤 방식으로 업데이트하시는지 궁금합니다.
1. 엔티티 내부에 id를 제외한 모든 파라미터를 받는 수정자 메서드를 생성
2. builder로 객체를 clone하고, 빌더를 이용한 수정자 메서드 생성
3. 업데이트할 필드의 내용으로 새 엔티티를 생성하고, id를 복사
불변, 신뢰성때문에 되도록이면 수정자 메서드를 넣지 않고, 식별자를 copy하여 객체를 새로 만드는 방식을 생각했었는데, 답변을 보니 생각이 달라졌다.
고찰 :
1. 도메인 로직에 수정 메서드를 넣고, 수정하는 책임을 지게 하는게 깔끔하다.
2. 불변이 꼭 만능은 아니며, jpa의 엔티티 논리적 동치관계는 ID로 하기 때문에, 굳이 새로만들어서 불변성 보장을 시도하지 않아도 된다.
3. 여기서 책임이란 파라미터의 검증 또한 수정자 메서드에 하는 것도 포함한다.
'Spring' 카테고리의 다른 글
Filter, Interceptor, AOP 차이에 대한 정리 (0) | 2021.11.22 |
---|---|
오늘의 질문: jpql 프로젝션 대상이 둘 이상이면 반환 값을 어떻게 받나? (0) | 2021.11.05 |
DDD를 위한 일대다 연결관계 매핑 (0) | 2021.08.09 |
JPA 생성 날짜, 수정 날짜 자동으로 넣어주기 (0) | 2021.07.16 |
소프트웨어 공학 쇼핑몰 만들기 (0) | 2021.05.20 |