Spring Boot/데이터베이스 연동

[Spring boot] 엔티티 설계 - 실습

재윤 2025. 8. 17. 17:33
반응형
  • Spring Data Jpa를 사용하면 DB에 테이블을 생성하기 위해 직접 쿼리 작성 필요 X
  • JPA에서 엔티티는 DB의 테이블에 대응하는 클래스
import java.time.LocalDateTime;

import jakarta.persistence.*;
import lombok.*;

@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@ToString(exclude = "name")
@Table(name = "product")
public class Product {

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

    @Column(nullable = false)
    private String name;

    @Column(nullable = false)
    private Integer price;

    @Column(nullable = false)
    private Integer stock;

    private LocalDateTime createdAt;

    private LocalDateTime updatedAt;

}

엔티티 관련 기본 애너테이션

@Entity

  • 클래스가 엔티티임을 명시

@Table

  • 엔티티 클래스와 테이블의 이름을 다르게 지정해야할 경우

@Id

  • 테이블의 기본값 역할

@GeneratedValue

  • 기본적으로 @Id와 함께 사용

값 생성 방식

  • GeneratedValue를 사용하지 않는 방식 → 애플리케이션에서 자체적으로 고유한 기본값을 생성할 경우
  • Auto → 기본값을 사용하는 DB에 맞게 자동 생성
  • IDENETITY → 기본값 생성을 DB에 위임하는 방식
  • SEQUENCE → 식별자 생성기를 설정하고 이를 통해 값 자동 주입

@Column

  • 엔티티 클래스의 필드는 자동으로 테이블 칼럼으로 매핑

@Transient

  • 엔티티 클래스에는 선언돼 있는 필드지만 DB에서는 필요 없을 경우
반응형