[!tip] 필요한 데이터를 설정할 수 있다.
예시로, User 객체를 생성하는데 password가 필요없이 접근해야 하는 상황이 있을수도 있다.
하지만 그럴때마다 생성자를 수정하기에는 번거롭고 귀찮은 작업이다. 그때 builder를 사용해서 불필요한 필드를 작성하지 않으면 해결된다.
[!tip] 가독성을 높일수 있다.
아래의 현재그림이
이렇게 변할수 있다. 즉, 어떤 값을 설정 하는지 알기 쉽다.
[!tip] 변경 가능성을 최소화 시킬 수 있다.
이부분은 잘 이해가 되지 않는다. setter를 지양하기 위해서 쓸 수도 있다는 말인듯 싶다.
@Builder
public Restaurants(String name,String category,String address,String number){
this.name = name;
this.category = category;
this.address = address;
this.number = number;
this.created_date = LocalDate.now();
this.updated_date = LocalDate.now();
}
왜 이렇게하고 class자체에 Builder를 또 붙이면안될까??
이유는 다음과 같다.
이 코드에서 빌더(@Builder
)를 두 번 사용하는 것이 문제를 일으키는 이유는 롬복(Lombok)이 두 개의 빌더 메소드를 생성하려고 하기 때문입니다. 롬복의 @Builder
는 클래스에 대한 빌더 패턴을 생성하는데, 이미 생성자가 있고 빌더가 있으므로 충돌이 발생합니다.
롬복에서 두번 빌더를 실행하게되는 셈이 되어서 충돌이 일어나서 실행이 안된 모양이다. 잘 알아두자.
이거는 created_date,updated_date와 같은 날짜 생성 함수들의 작동원리다
https://wildeveloperetrain.tistory.com/76
요약하자면, 공통적으로 created_date,updated_date를 사용하게 될땐
Jpa가 Entity에서 이벤트가 발생할 때 특정 로직을 수행하는
질문의 요점을 잘 정리해서 검색해보자
이상적인 Q1. 제가 ---해서 ---한 방법을 사용해보고 시도해봤는데 ---와 같은 결과가 나왔습니다.
결과가 이렇게 나온 이유는 디버그를 통해서 알아봤는데 ---때문이라는 생각이 들었습니다. 이점믈 어떻게 해결할 수 있을까요? 아니면 제가 a방법을 시도해보려고하는데 괜찮을까요? 혹은 다른 좋은 대안을 주실수 있을까요?
조금은 오버한 질문이긴하지만 좋은 답변을 받기 좋을만한 질문이라서 추가해봤다.
그냥 검색하는 것보다 구글 검색연산자를 활용해봅시다.
영어로 검색시
한글로 검색시