Skip to content

JPA Entity 매핑 #5

@suna-ji

Description

@suna-ji

JPA 엔티티 주요 어노테이션

엔티티 매핑 어노테이션

@Table

  • 엔티티 클래스와 데이터베이스 테이블 매핑
  • 주요 속성
    • name : 테이블 이름
    • schema : 테이블이 속한 스키마 이름
    • catalog :테이블이 속한 카탈로그 이름
    • uniqueConstraints : 유니크 제약 조건 설정 (DDL 생성 시 사용)
      • 문서화 + 제약 조건 설계 의도 명시를 위해 적기도 함
    • indexes : 인덱스 설정

@GeneratedValue

  • 키본 키 값을 자동 생성
  • 주요 속성
  • stratege : 키 생성 전략
    • GenerationType.AUTO : 기본 키 생성 전략을 JPA 구현체가 자동으로 선택
    • GenerationType.IDENTITY : 데이터베이스의 자동 증가 기능 사용
      • batch insert 사용에 제한 있음 (엔티티를 저장할 때마다 즉시 SQL을 실행해야 기본 키 값을 얻을 수 있기 떄문)
    • GenerationType.SEQUENCE: 데이터베이스의 시퀀스 객체를 사용해 기본 키 생성
  • generator : 사용자 정의 키 생성기 이름

@Column

  • 엔티티 클래스 필드와 데이터베이스 컬럼 매핑
  • 주요 속성
    • name : 컬럼 이름 지정
    • unique : 유니크 제약 조건 설정 (default : false)
    • length : 문자열 타입의 컬럼 길이 지정

연관관계 매핑 어노테이션

@OneToOne

@ManyToOne

  • 두 엔티티간의 다대일 관계 매핑
  • 주요 속성
    • fetch: 데이터 로딩 전략 설정 (default : EAGER)
    • optional : 관계 대상이 필수인지 여부

@OneToMany

@ManyToMany

기타 어노테이션

Transient

MappedSuperclass

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions