1HOON
논리적 코딩
1HOON
전체 방문자
오늘
어제
  • HOME (186)
    • ☕️ JAVA (28)
      • WhiteShip Java LIVE Study (6)
      • Effective JAVA (10)
    • 🔮 KOTLIN (4)
    • 🌱 SPRING (51)
      • 스프링 인 액션 (22)
      • JPA (18)
    • ☕️ JAVASCRIPT (6)
    • 📃 DATABASE (40)
      • ORACLE (37)
      • MSSQL (2)
    • 🐧 LINUX (4)
    • 🐳 DOCKER (5)
    • 🐙 KUBERNETES (4)
    • 🏗️ ARCHITECTURE (8)
    • 📦 ETC (26)
      • TOY PROJECT (5)
      • RECRUIT (1)
      • 그냥 쓰고 싶어서요 (14)
    • 🤿 DEEP DIVE (1)
    • 🚽 Deprecated (9)
      • PYTHON (3)
      • AWS (2)
      • HTTP 완벽가이드 (3)
      • WEB (1)

블로그 메뉴

  • 홈
  • 방명록
  • 관리

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
1HOON

논리적 코딩

[JPA] 매핑 어노테이션
🌱 SPRING/JPA

[JPA] 매핑 어노테이션

2020. 6. 13. 17:18

 

엔티티 내 필드에는 아래 매핑 어노테이션을 이용해 매핑 컬럼에 대한 특성을 지정할 수 있다.

  • @Column
  • @Temporal
  • @Enumerated
  • @Lob
  • @Transient

 

 

@Column

  • name
    • @Column(name = "컬럼명")
    • 필드와 매핑할 테이블의 컬럼명을 지정한다.
    • 기본값 : 필드명
  • insertable, updatable
    • 필드 값 수정 시 DB에 반영할 지 여부
    • @Column(updatable = false) 지정 시 해당 필드의 값이 변경되도 UPDATE문에 포함되지 않음
    • 기본값 : true
  • nullable
    • @Column(nullable = false)
    • 기본값 : true
    • DDL 옵션
    • null 허용 여부를 지정한다.
  • unique
    • @Column(unique = true)
    • 기본값 : false
    • DDL 옵션
    • 해당 방법으로 Unique 지정 시 제약조건명이 랜덤생성되어 잘 사용하지 않음
  • columnDefinition
    • @Column(columnDefinition = "varchar(100) default 'EMPTY'")
    • DDL 옵션
    • 컬럼 정보를 직접 지정할 수 있다.
  • length
    • @Column(length = 10)
    • 기본값 : 255
    • DDL 옵션
    • 문자 길이 제약조건. String 타입에만 사용한다.
  • precision, scale
    • @Column(precision = 0)
    • BigDecimal 타입에서 사용한다.
    • precision : 소숫점을 포함한 전체 자리수
    • scale : 소수의 자리수

 

 

 

 

@Enumerated

  • value
    • EnumTypes.ORDINAL
      - enum의 순서를 저장한다.
      - enum의 순서는 변경될 여지가 굉장히 많기 때문에 사용하지 말자.
    • EnumTypes.STRING
      - enum의 이름을 저장한다.

 

 

@Temporal

  • value
    • TemporalType.DATE
      - 날짜
      - 데이터베이스 date 타입과 매핑한다.
    • TemporalType.TIME
      - 시간
      - 데이터베이스 time 타입과 매핑한다.
    • TemporalType.TIMESTAMP
      - 날짜 + 시간
      - 데이터베이스 timestamp 타입과 매핑한다.

 

 

@Lob

데이터베이스 BLOB, CLOB 타입과 매핑한다. 매핑하는 필드 타입이 문자일 경우 CLOB, 나머지는 BLOB으로 매핑한다.

 

 

@Transient

필드 매핑을 하지 않을 때 사용한다. 엔티티의 해당 필드는 DB 컬럼과 매핑되지 않으므로 저장/조회되지 않는다.

주로 메모리상에서 값을 임시로 보관하려할 때 사용한다.

 

 

 


출처 :: 인프런 강의(자바 ORM 표준 JPA 프로그래밍 - 기본편)

반응형
저작자표시 비영리 변경금지 (새창열림)

'🌱 SPRING > JPA' 카테고리의 다른 글

[JPA] 연관관계 매핑 기초  (0) 2020.07.04
[JPA] 기본키 매핑 어노테이션  (1) 2020.07.04
[JPA] 스키마 자동 생성  (0) 2020.06.13
[JPA] 엔티티  (1) 2020.06.13
[JPA] 플러시(flush)  (0) 2020.06.13
    '🌱 SPRING/JPA' 카테고리의 다른 글
    • [JPA] 연관관계 매핑 기초
    • [JPA] 기본키 매핑 어노테이션
    • [JPA] 스키마 자동 생성
    • [JPA] 엔티티
    1HOON
    1HOON

    티스토리툴바