JPA(3) - 엔티티 매핑에 관하여

UkJJang·2021년 9월 5일
0

인프런 김영한 님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 (https://www.inflearn.com/course/ORM-JPA-Basic/dashboard) 을 들으며 정리하였습니다.

JPA를 이용해서 테이블과 매핑할 클래스에는 @Entity 어노테이션을 필수로 붙여줘야 한다. 그렇지 않으면 단순한 클래스에 불과하다. 또한 기본 생성자가 필수로 있어야하며 final 클래스, enum, interface, inner 클래스는 사용이 불가하다.

@Entity(name = "")

  • name에는 JPA에서 사용할 엔티티 이름을 지정해 주는 속성이지만 대부분 기본값인 같은 클래스 이름을 가지도록 하여 사용한다.

@Table

  • name : 테이블 이름을 명시해주는 속성이며 기본값으로 엔티티 이름을 사용한다.
  • catalog : DB catalog 매핑
  • schema : DB schema 매핑
  • uniqueConstraints : DDL 생성 시에 유니크 제약조건을 생성한다.

매핑 어노테이션

  • @Column : 컬럼을 매핑한다.
  • @Temporal : 날짜 타입을 매핑한다. (LocalDateTime을 이용하면 명시를 안해줘도 된다.)
  • @Enumerated : enum 타입을 매핑한다. 타입으로는 EnumType.STRING을 사용해야한다.
  • @Lob : BLOB, CLOB를 매핑한다
  • @Transient : 특정 필드를 매핑하고 싶지 않을때 사용하는 어노테이션

기본키 매핑 어노테이션

  • 기본키를 설정할 때에는 Long형 + 대체키 + 키 생성전략을 사용해서 생성한다.

직접 기본키 명시

  • @Id : 직접 기본키를 명시할 때 사용하는 어노테이션

자동 기본키 생성

  • @GneratedValue
    • SEQUENCE : 데이터베이스의 시퀀스 오브젝트를 사용한다.
    • IDENTITY : 기본키 생성을 데이터베이스에게 맡긴다.
    • TABLE : 기본키를 생성하는 테이블을 사용한다, 모든 DB에서 사용 @TableGenerator 어노테이션 필요
    • AUTO : 각 데이터베이스에 맞게 자동으로 지정한다.
profile
꾸준하게 성실하게

0개의 댓글