본문 바로가기
Back-End/Spring

[JPA] 필드와 컬럼 매핑 어노테이션 정리

by LeeGangEun 2022. 8. 1.

 

@Column -> 컬럼 매핑
  - name -> 필드와 매핑할 테이블의 컬럼 이름
  - insertable,updatetable -> 등록, 변경 가능 여부
  - nullable(DDL) -> null 값의 허용여부를 설정
  - unique(DDL) -> @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용
  - columnDefinition(DDL) -> DB 컬럼 정보를 직접 줄 수 있다.
  - length(DDL) -> 문자 길이 제약조건, String 타입에만 사용
  - precision, scale(DDL) -> BigDecimal 타입에서 사용한다.(Long도 사용 가능),
                                            precision은 소수점을 포함한 전체 자릿수를,
                                            scale은 소수의 자릿수다.

@Temporal -> 날짜 타입 매핑 ------ LocalDateTime 으로 대체 가능

@Enumerated -> enum 타입 매핑

// enum이 생성되있다고 가정

@Enumerated(EnumType.STRING)
private RoleType roleType;

기본타입이 ORDINAL이라 STRING으로 변경
ORDINAL -> enum 순서를 DB에 저장
STRING -> enum 이름을 DB에 저장

 

@Lob -> BLOB,CLOB 매핑
   - 속성이 없다.
   - 매핑하는 필드 타입이 문자면 CLOB, 나머지는 BLOB 매핑
   -  CLOB : String, char[], java.sql.CLOB
   -  BLOB : byte[], java.sql.BLOB

@Transient -> 특정 필드를 컬럼에 매핑하지 않음(매핑 무시)
   - 필드 매핑 X
   - DB에 저장 X, 조회 X
   - 주로 메모리상에서만 임시로 어떤 값을 보관하고 싶을 때 사용