작성
·
501
·
수정됨
0
Entity의 경우 불변성을 위해 Setter를 사용하지 않고 Builder패턴을 사용중인데요.
불편한점이 생겼습니다.
회원 Entity의 경우 필드가 30개 정도 되는데요.
패스워드 3회 실패 시 상태값(isActive) 필드만 수정을 하고 싶은데
Setter가 있다면 해당 회원ID로 조회 후 memberEntity.setIsActive(False)로 입력해주면
DirtyChecking으로 간단하게 원하는 로직이 구현되는데
builder 패턴이다 보니 아래 처럼 구현을 하고 있습니다.
MemberEntity originMember = memberRepository.findById(memberId);
MemberEntity memberForUpdate = MemberEntity.builder()
.id(originMember.getId())
.address(originMember.getAddress())
.isActive(true)
..........
.build();
memberRepository.save(memberForUpdate );
이런 경우에 Builder패턴을 사용하면서 좋은 해결책이 있을까요?
상태와 관련된 필드만 @Setter를 넣자니
(제 짧은 생각이지만 changeStatus method로 필드값 변경하는 방법도 setter와 동일해보입니다. 오히려@Setter가 코드간결성에서 더 좋아보이는 제 생각입니다.)
해당 필드도 무분별하게 변경이 되면 안되는 중요한필드라 애매한 상황입니다. 도와주세요 !