반응형
@MappedSuperclass
- 객체의 입장에서 공통 매핑 정보가 필요할 때 사용
- 부모 클래스에 선언하고 속성만 상속받아서 사용하고 싶을 때 사용
[예제]
- Product 에서 BaseEntity를 상속받아서 사용
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity {
@CreatedDate
private LocalDateTime createDateTime;
@LastModifiedDate
private LocalDateTime modifiedDateTime;
}
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Entity
public class Product extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
}
@RequiredArgsConstructor
- 초기화되지 않은 final 필드나, @NotNull이 붙은 필드에 대해 생성자를 생성
[예제]
@Transactional
@RequiredArgsConstructor
@Service
public class OrderService {
private final ProductRepository productRepository;
private final OrderRepository orderRepository;
private final StockRepository stockRepository;
}
- @RequiredArgsConstructor을 쓰면 다음과 같아진다.
@Transactional
@Service
public class OrderService {
private final ProductRepository productRepository;
private final OrderRepository orderRepository;
private final StockRepository stockRepository;
public OrderService(ProductRepository productRepository, OrderRepository orderRepository, StockRepository stockRepository) {
this.productRepository = productRepository;
this.orderRepository = orderRepository;
this.stockRepository = stockRepository;
}
}
@NoArgsConstructor
- 파라미터가 없는 디폴트 생성자를 자동으로 생성
[예제]
@NoArgsConstructor
public class Product {
private String productNumber;
private int quantity;
}
- @NoArgsConstructor을 쓰면 다음과 같아진다.
public class Product {
private String productNumber;
private int quantity;
public Product() {}
}
@AllArgsConstructor
- 클래스의 모든 필드 값을 파라미터로 받는 생성자를 자동으로 생성
[예제]
@AllArgsConstructor
public class Product {
private String productNumber;
private int quantity;
}
- @AllArgsConstructor을 쓰면 다음과 같아진다.
public class Product {
private String productNumber;
private int quantity;
public Product(String productNumber, int quantity) {
this.productNumber = productNumber;
this.quantity = quantity;
}
}
반응형
'BackEnd' 카테고리의 다른 글
Swagger 기본 설정 및 Nginx 설정 (0) | 2025.04.30 |
---|---|
HTTPS 요청 시 SSL 인증서 오류 무시 (0) | 2025.03.27 |