본문 바로가기
JPA

JPA - @NoArgsConstructor & @AllArgsConstructor 개념 및 사용법

by 지민재 2024. 5. 16.
반응형
SMALL

개요

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을 함께 사용하여 매개변수 없는 기본 생성자와 모든 필드를 인자로 받는 생성자를 자동으로 생성한다.

댓글