Spring Boot - JPA - 엔티티 클래스의 자주 쓰는 애너테이션에 대해 (Data, Builder, NoArgsConstructor, AllArgsConstructor)

반응형

 

엔티티 클래스를 생성할 때 자주 보았지만 정확히는 알지 못하고 사용했었다.

이제 좀 정확히 알고 사용하고 싶어서 이 글을 작성하게 되었다.

JPA의 Entity 클래스에서 자주 보았던 Annotation에 대해...


@Data

  • 롬복(Lombok) 라이브러리에서 제공하는 애너테이션
  • 클래스 내부의 모든 필드에 대해 getter와 setter 메서드, equals, hashCode, toString 등의 메서드를 자동으로 생성해주는 기능 제공

@Builder

  • 빌더 패턴을 적용하기 위해 사용되는 애너테이션
  • 객체 생성 시에 많은 파라미터를 받는 경우 코드 가독성과 유지보수성이 떨어지는 문제 해결을 위한 패턴
  • @Builder를 사용하여 빌더 객체를 생성
  • 객체 생성 시 필요한 파라미터만 지정할 수 있음

@NoArgsConstructor

  • 인자 없는 생성자를 자동으로 생성해주는 롬복의 애너테이션
  • 일반적으로 JPA에서는 엔티티 클래스에 기본 생성자가 필요
  • @NoArgsConstructor 사용하여 기본 생성자를 자동으로 생성

@AllArgsConstructor

  • 모든 필드를 인자로 받는 생성자를 자동으로 생성해주는 롬복의 애너테이션
  • 일반적으로 DTO(Data Transfer Object) 등에서 사용

@Setter, @Getter

  • 각각 필드에 대한 setter와 getter 메서드를 자동으로 생성해주는 롬복의 애너테이션
  • 클래스 선언부에 @Setter, @Getter 애너테이션 추가
  • 해당 클래스의 필드에 대한 setter와 getter 메서드를 자동으로 생성할 수 있음

@Entity

  • JPA에서 엔티티 클래스를 정의할 때 사용하는 애너테이션
  • @Entity가 선언된 클래스는 데이터베이스 테이블과 매핑
  • 데이터베이스와 상호작용할 수 있는 엔티티가 됨
  • 엔티티 클래스는 데이터베이스에서 조회, 생성, 수정, 삭제 등의 작업 수행
반응형