개요
Spring Boot와 JPA에서 @NoArgsConstructor 및 @AllArgsConstructor 애노테이션은 주로 엔터티 클래스에서 사용된다. 이러한 애노테이션은 Lombok 프로젝트에서 제공되며, 코드를 간소화하고 반복적인 작업을 줄이는 데 도움이 된다.
@NoArgsConstructor
@NoArgsConstructor 애노테이션은 해당 클래스에 파라미터 없는 기본 생성자를 자동으로 생성한다. 이 생성자는 JPA에서 엔터티 클래스를 사용할 때 특히 유용하다
import javax.persistence.Entity;
import javax.persistence.Id;
import lombok.*;
@Entity
@Data
@NoArgsConstructor
public class MyEntity {
@Id
private Long id;
private String name;
}
위의 예제에서 @NoArgsConstructor 애노테이션은 매개변수 없는 기본 생성자를 생성한다.
@AllArgsConstructor
@AllArgsConstructor 애노테이션은 모든 필드를 매개변수로 갖는 생성자를 자동으로 생성한다. 이는 보통 데이터를 한꺼번에 초기화할 때 유용하다.
import javax.persistence.Entity;
import javax.persistence.Id;
import lombok.*;
@Entity
@Data
@AllArgsConstructor
public class MyEntity {
@Id
private Long id;
private String name;
}
위의 예제에서 @AllArgsConstructor 애노테이션은 모든 필드를 인자로 받는 생성자를 생성한다.
@NoArgsConstructor와 @AllArgsConstructor을 함께 사용하면?
두 애노테이션을 함께 사용하면 코드의 가독성이 향상되며 개발자가 반복적인 작업을 줄일 수 있다. 예를 들어, JPA 엔터티 클래스를 정의할 때, 보통 매개변수 없는 기본 생성자와 모든 필드를 인자로 받는 생성자가 필요하다. @NoArgsConstructor와 @AllArgsConstructor을 함께 사용하면 이러한 생성자를 간단하게 생성할 수 있다.
import javax.persistence.Entity;
import javax.persistence.Id;
import lombok.*;
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MyEntity {
@Id
private Long id;
private String name;
}
위의 예제에서는 @NoArgsConstructor와 @AllArgsConstructor을 함께 사용하여 매개변수 없는 기본 생성자와 모든 필드를 인자로 받는 생성자를 자동으로 생성한다.
'JPA' 카테고리의 다른 글
JPA - Spring Data JPA에서 엔티티의 생성 시간과 수정 시간을 자동으로 관리하기 (0) | 2024.07.17 |
---|---|
JPA - @EntityListeners 엔티티의 생명주기 이벤트 리스닝 (0) | 2024.07.17 |
@Builder (1) | 2024.01.04 |
@GeneratedValue (2) | 2023.11.21 |
@NoArgsConstructor (1) | 2023.11.21 |
댓글