[Spring Boot] 엔티티 클래스

조애옹·2025년 6월 17일

🔍 Entity 클래스란?

  • DB의 테이블 구조를 자바 코드로 표현한 클래스
  • JPA가 DB 테이블을 만들거나 조회할 때 이 클래스를 기반으로 동작
  • 테이블의 행(Row)은 각각 엔티티 객체 1개에 대응됨

✅ 주요 어노테이션

어노테이션설명
@Entity이 클래스가 JPA 엔티티임을 명시
@Table(name = "테이블명")(선택) DB 테이블 이름 지정
@Id기본 키(PK) 필드 지정
@GeneratedValue기본 키 자동 생성 전략 설정 (IDENTITY 등)
@Column(선택) 컬럼 상세 설정 (nullable, length 등)

✅ 주의사항

  • 리플렉션을 통해 객체를 생성하므로 기본 생성자가 반드시 필요함

  • final 클래스 X → 프록시 생성을 위해 제한

  • getter/setter는 필요한 범위만 구현

  • 비즈니스 로직보단 데이터 구조와 제약 중심으로 설계

  • toString() 오버라이드 시 연관 관계 필드 주의 (순환 참조 발생 가능)


💻 예제 코드

@Entity
@Table(name = "users")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false, length = 50)
    private String name;

    protected User() {} // 기본 생성자 반드시 필요

    public User(String name) {
        this.name = name;
    }

    // Getter/Setter 생략
}
  • @Getter, @Setter, @NoArgsConstruction, @AllArgsConstruction 등 롬복 어노테이션을 사용해도 됨
profile
아자잣

0개의 댓글