OrderEvent라는 클래스를 상속받는 OrderCancel와 OrderConfirm 에서 lombok의 @Builder 를 사용하려면 어떻게 해야할까? 현업을 하면서 이렇게 적용해야하는 순간이 생겼는데,
import java.time.LocalDateTime;
public abstract class OrderEvent {
private Long id;
private String userName;
private LocalDateTime orderedTime;
}
그리고 이를 상속받는
import java.time.LocalDateTime;
public class OrderCancel extends OrderEvent{
private LocalDateTime cancelTime;
}
import java.time.LocalDateTime;
public class OrderConfirm extends OrderEvent{
private LocalDateTime confirmTime;
}
이 있다고 했을 때, 단순하게 @Builder만 추가한다면
@Builder
public class OrderCancel extends OrderEvent{
private LocalDateTime cancelTime;
}
build를 적용하려고 했을 때, orderEvent에 대한 필드는 만들지 못하고 OrderCancel에 대한 값만 적용되는 것을 확인할 수 있다. 이때 사용하는 것이 @SuperBuilder이다
이 때 주의할 점이, 부모와 상속받는 자식 둘다 @SuperBuilder를 추가해 줘야 한다.
이렇게 적용한 후 확인해 보면,
OrderEvent에 있는 값들도 적용할 수 있게 되었다.
JPQL과 Querydsl 차이 (0) | 2022.04.20 |
---|---|
[ 스프링 데이터 JPA ] 네이티브 쿼리 사용하기 (0) | 2022.04.14 |
@AllArgsConstructor 유의사항 (0) | 2022.03.12 |
[ Spring ] DI 컨테이너 싱글톤 방식의 문제점 (0) | 2022.02.05 |
[ Spring ] DI 컨테이너와 싱글톤 (0) | 2022.02.04 |