본문 바로가기

오답노트

@Entity, @Builder 함께 사용할 때

@Entity - javax.persistence.Entity

@Builder - lombok.Builder

 

클래스 정의

 

오류 메시지

constructor in class cannot be applied to given types; @Builder

 

@Builder 만 정의

 

 

 

all-args constructor 를 생성해냄

@Entity 와 @AllArgsConstructor 만 정의

no-arg constructor 가 있어야 한다고 함. 테스트는 돌아간다

 

@Entity 는 no-args 가 필요하고

@Builder 는 all-args 가 필요하다. 

 

맨위로 다시 가보면 

 

 

이 때 @Builder 가 만들 all - args constructor 가 생성이 안되는 것 같다.

- 찾았음

해석하면

이 생성자는 생성자를 작성하지 않았고 명시적인 @XArgsConstructor 주석도 추가하지 않은 경우에만 생성됩니다.

라고 합니다.

 

그러니 NoArgsConstructor 를 사용하게 되면 꼭 @AllArgsConstructor 를 명시해주자.

 

https://stackoverflow.com/questions/34241718/lombok-builder-and-jpa-default-constructor