본문 바로가기
Java/JPA

[JPA] JPA의 요소

by 인포썸 2024. 4. 21.

객체와 테이블 매핑

@Entity

  • 테이블과 매핑할 클래스에 필수로 사용되는 어노테이션
  • name 속성을 이용하여 JPA에서 사용할 엔티티 이름을 지정한다. 설정하지 않으면 기본값이 클래스 이름으로 설정된다.
  • 다른 패키지에 이름이 같은 엔티티 클래스가 있을 경우 이름을 지정하여 충돌을 피하여한다
  • 기본 생성자는 필수, final 클래스, enum, interface, inner 클래스에는 사용하면 안 된다. 

@Table

  • 엔티티와 매핑할 테이블을 지정(생략할 경우 매핑할 엔티티의 이름을 테이블 이름으로 사용된다.)
  • name : 매핑할 테이블 이름(기본값 = 엔티티이름)
  • catalog : catalog 기능이 있는 DB에서 catalog를 매핑
  • schema : schema 기능이 있는 DB에서 schema를 매핑

@Column

  • 컬럼을 매핑한다.
  • name 속성을 이용하여 매핑할 컬럼을 지정(default는 객체의 필드 이름)

@Enumerated

  • java의 enum타입 매핑
  • value 속성을 이용하여 DB에 저장할 값을 지정한다.
    1. EnumType.Ordinal  : enum의 순서를 DB에 저장(default)
    2. EnumType.String : enum의 이름을 저장

@Temporal

  • 날짜 타입을 매핑
  • value 속성을 이용하여 DB값을 저장해야 한다. value 속성 필수
    1. TemporalType.DATE : 날짜, DB의 date 타입과 매핑(ex 2024-04-21)
    2. TemporalType.TIME : 날짜,DB의 time 타입과 매핑(ex. 13:14:22)
    3. TemporalType.TIMESTAMP : 날짜와 시간, DB의 timestamp타입과 매핑(ex. 2024-04-21 13:14:22)

@Lob

  • BLOB,CLOB타입을 매핑

@Transient

  • 특정 필드를 db에 저장하지 않고  JPA에 저장

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

[JPA]영속성 컨텍스트  (0) 2024.04.17
[JPA] ORM와 JPA  (0) 2021.05.28

댓글