본문 바로가기
[JAVA]/JPA

JPA - 필드와 컬럼 매핑

by 팡펑퐁 2022. 11. 27.
728x90

@Column 

  • 필드와 컬럼 매핑
  • 속성
    • name : 필드와 매핑할 테이블의 컬럼 이름 / 기본값 : 객체 필드의 이름
    • insertable, updatable : 등록, 변경 가능 여부 / 기본값 : TRUE
    • nullable(DDL) : null 값의 허용 여부를 설정한다. false로 설정하면 DDL 생성 시에 not null 제약 조건이 붙음.
    • unique(DDL) : @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용한다.
    • columnDefinition(DDL) : 데이터베이스 컬럼 정보를 직접 줄 수 있다. ex) "varchar(100) default 'EMPTY'"
    • length(DDL) : 문자 길이 제약조건, String 타입에만 사용함

 

@Temporal

  • 날짜 타입(java.util.Date, java.util.Calendar)을 매핑할 때 사용
  • 속성
    • value
      • TemporalType.DATE : 날짜, 데이터베이스 date 타입과 매핑
      • TemporalType.TIME : 시간, 데이터베이스 time 타입과 매핑
      • TemporalType.TIMESTAMP : 날짜와 시간, 데이터베이스 timestamp 타입과 매핑
  • LocalDate, LocalDateTime을 사용하면 생략 가능(최신 하이버네이트 지원)하므로 이제 쓸 일이 거의 없다.

 

@Enumerated

  • enum 타입을 매핑할 때 사용
  • 속성
    • value
      • EnumType.ORDINAL : enum 순서를 데이터베이스에 저장(기본값)
      • EnumType.STRING : enum 이름을 데이터베이스에 저장(STRING으로 써야함)
      • ORDINAL로 하게되면 enum 추가할 때 번호가 개판될 수 있음
      • ex) 기존에 1 저장 이후 새롭게 1로 저장되면 DB에 1 두개

 

@Lob

  • 데이터베이스 BLOB, CLOB 타입과 매핑
  • 매핑하는 필드 타입이 문자면 CLOB 매핑, 나머지는 BLOB 매핑

 

@Transient

  • 특정 필드를 컬럼에서 제외
  • 데이터베이스에 저장 x, 조회 x
  • 주로 메모리 상에서만 임시로 어떤 값을 보관하고 싶을 때 사용

 

 

 

참고

김영한 - 자바 ORM 표준 JPA 프로그래밍

728x90

'[JAVA] > JPA' 카테고리의 다른 글

JPA - 연관관계 매핑  (0) 2022.11.27
JPA - 기본 키 매핑  (0) 2022.11.27
JPA - 객체와 테이블 매핑  (0) 2022.11.27
JPA - flush(플러시)  (1) 2022.11.26
JPA - 영속성 컨텍스트  (1) 2022.11.26