프로젝트 & TIL/일별 공부 기록 (백엔드 스쿨)
67일차 - @SuperBuilder
yurison
2023. 5. 26. 11:03
엔티티 값 수정 시 @SuperBuilder 사용하기
@SuperBuilder(toBuilder = true) 어노테이션을 붙임으로써 상속 받은 속성의 값도 수정할 수 있다.
- 상속하는 클래스, 상속 받는 클래스 모두 어노테이션을 붙여야 한다.
Person 클래스
@SuperBuilder(toBuilder = true)
public class Person {
private String name;
private int age;
}
Person 클래스를 상속 받는 Member 클래스
@SuperBuilder(toBuilder = true)
public class Member extends Person {
private String nickname;
}
toBuilder()를 통해 엔티티 값 수정하기
@Service
public class MemberService {
...
private Member updateMember(Member member, String name, int age, String nickname) {
Member member1 = member
.toBuilder
.name(name) // Person 클래스에서 상속 받은 속성
.age(age) // Person 클래스에서 상속 받은 속성
.nickname(nickname)
.build();
memberRepository.save(member1);
return member1;
}
}