엔티티 매핑

박준수·2023년 3월 4일
0

[JPA]

목록 보기
4/14

객체와 테이블 매핑

@Entity

@Entity가 붙은 클래스는 JPA가 관리한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity는 필수!!
기본값은 클래스 이름을 그대로 사용(예: Member)한다. 같은 클래스 이름이 없으면 가급적 기본값을 사용한다.

주의점

  • final 클래스, enum, inteface, inner 클래스 사용 X
  • 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자)
  • 저장할 필드에 final 사용 X

@Table

@Colume


unique란? : 중복을 허용하지 않는 유일한 값을 갖는 제약조건
unique + Not null ==> PK

@Enumerated

자바 enum 타입을 매핑할 때 사용

  • ORIGINAL 타입을 쓰는 순간 순번이 뒤죽박죽 될 수 있기에 무조건 STRING을 써야한다.

@Temporal

날짜 타입(java.util.Date, java.util.Calendar)을 매핑할 때 사용

  • LocalDate, LocalDateTime을 사용할 때는 생략 가능(최신 하이버네이트 지원)

@LOB

데이터베이스 BLOB, CLOB 타입과 매핑

  • @Lob에는 지정할 수 있는 속성이 없다.
    (LOB은 TEXT, 그래픽, 이미지, 비디오, 사운드 등 구조화되지 않은 대형 데이터를 저장 목적)
  • 매핑하는 필드 타입이 문자면 CLOB 매핑, 나머지는 BLOB 매핑
  • CLOB: String, char[], java.sql.CLOB (문자 기반 데이터 보관용)
  • BLOB: byte[], java.sql.BLOB (ex: (Binary), 이미지, 동영상, MP3 )

@Transient

  • 필드 매핑X
  • 데이터베이스에 저장X, 조회X
  • 주로 메모리상에서만 임시로 어떤 값을 보관하고 싶을 때 사용
@Transient
private Integer temp;
profile
방구석개발자

0개의 댓글