Skip to main content

엔티티 매핑

·168 words·1 min· loading
Table of Contents
JPA - This article is part of a series.
Part 3: This Article

객체와 테이블 매핑
#

@Entity
#

@Entity가 붙은 클래스는 JPA가 관리

주의 : 기본생성자(public | protected) 필요

@Table
#

엔티티와 매핑할 테이블 지정

속성

  • name : 테이블명
  • catalog : DB 카탈로그
  • schema : 스키마
  • unique

스키마 자동 생성
#

JPA에서는, 로딩 시점에 DDL 자동 생성 지원 운영에서 쓸때 조심

옵션

  • create : 시작할때 다시만들기
  • create-drop : 종료시 drop
  • update : 변경분만 반영 `ALTER TABLE
  • validate : 정상 매핑인지 확인 => 없으면 persistenceException

항상 주의해서 사용할것 !! => 운영에선 validate,none 만 사용하자


필드와 컬럼 매핑
#

  • @Column: 컬럼
  • @Temporal : 날짜타입
  • @Enumerated : enum
  • @Lob : BLOB,CLOB
  • @Transient 매핑 ❌

@Column
#

  • name: 컬럼이름 (default:필드이름)
  • insertable/updatable : 업데이트 가능 여부
  • nullable(DDL) : notnull
  • unique(DDL) : unique (컬럼에선 잘안쓰고 @Table에서 씀)
  • columnDefinition(DDL) : 컬럼정보를 직접 줌
  • length(DDL) : 길이 (varchar)
  • precision,scale(DDL) : 정밀한 소수?

@Enumerated
#

무조건 EnumType.String 사용할것

@TemporalType
#

시간관련 1.8부터 필요없음

  • LocalDate : Date타입
  • LocalDateTime : timestamp

@Lob
#

문자 => Clob 나머지 => Blob

Transient
#

필드 매핑 ❌ , DB 저장, 조회❌ 메모리상에서만 임시로 사용하고플때

JPA - This article is part of a series.
Part 3: This Article