본문 바로가기
☕Java/JPA

스프링 엔티티 매핑 애너테이션 정리

by 캔 2024. 3. 23.

 

타입 애너테이션

  • @Entity - JPA에서 엔티티로 관리할 클래스(엔티티명)
  • @Table - 매핑 대상 테이블 관련 설정(테이블명, 카탈로그, 스키마, 유니크 키 제약 조건)
  • @Acces - DB 접근 방식(AccessType.FIELD, AccessType.PROPERTY)
    • 필드 접근은 필드에 직접 접근. private도 접근 가능.
    • 프로퍼티 접근은 getter 이용하여 접근.

 

필드 애너테이션

  • @Id - 기본키
  • @GeneratedValue - 기본키 생성 전략(IDENTITY, SEQUENCE, TABLE)
  • @Column - 칼럼 매핑. 칼럼명과 제약조건들 설정(칼럼명, length, nullable, unique, precision(전체 자릿수), scale(소수 자릿수), columnDefinition, insertable, updateable, table)
  • @Temporal - Date 타입 매핑(Temporal.DATE, Temporal.DATETIME, Temporal.TIMESTMAMP)
    • 생략 시 MySQL 계열은 datetime으로, 오라클 및 PostgreSQL 등은 timestamp
  • @Lob - BLOB(MySQL 계열은 longblob) , CLOB(MySQL 계열은 longtext, PostgreSQL은 oid) 타입 매핑
  • @Enumerated - enum 타입 매핑(EnumType.ORDINAL, EnumType.STRING)
    • 주로 EnumType.STRING 사용(EnumType.ORDINAL은 변경 어려움)
  • @Transient - 매핑 안 함

'☕Java > JPA' 카테고리의 다른 글

Querydsl 주요 내용 정리  (0) 2024.03.27
Querydsl 사용을 위한 build.gradle 설정하기  (0) 2023.05.14