[JPA] 엔티티 매핑

1

JPA

목록 보기
5/16
post-thumbnail

JPA를 사용하는데 가장 중요한 것은 엔티티와 테이블을 정확히 매핑하는 것이다. 따라서 매핑 어노테이션은 모두 숙지하고 사용할줄 알아야한다.

JPA는 다양한 매핑 어노테이션을 제공하는데 크게 4가지로 나눌 수 있다.

  • 객체와 테이블 매핑 - @Entity, @Table
  • 기본 키 매핑 - @Id
  • 필드와 컬럼 매핑 - Column
  • 연관관계 매핑 - @ManyToOne, @OneToMany

@Entity

JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션을 무조건 사용해야한다. @Entity가 붙은 클래스는 JPA가 관리하는 클래스로, 엔티티라고 부른다.

속성

  • name - JPA에서 사용할 엔티티의 이름을 지정한다.

엔티티 사용시 주의사항

  • 기본 생성자 필수
  • final, enum, interface, inner 클래스 사용 안됨
  • 저장할 필드에 final 사용 금지

JPA가 엔티티 객체를 생성할 때 기본 생성자를 사용하므로 생성자는 무조건 있어야 한다.


Table

@Table은 엔티티와 매핑할 테이블을 지정한다.

속성

  • name - 매핑할 테이블 이름
  • catalog - catalog 기능이 있는 데이터베이스에서 catalog 매핑
  • schema - schema 기능이 있는 데이터베이스에서 schema를 매핑
  • uniqueConstraints - DDL 생성 시에 유니크 제약조건을 만듦

기본 키 매핑

영속성 컨텍스트는 엔티티를 식별자 값으로 구분하므로 엔티티를 영속 상태로 만들려면 식별자 값이 반드시 있어야 한다. persist( ) 메서드를 호출한 직후, 발생하는 일을 식별자 할당 전략별로 정리하면 다음과 같다.

  • 직접할당 - persist( )를 호출하기 전에 애플리케이션에서 직접 식별자 값을 할당 해야함
  • SEQUENCE - DB 시퀀스에서 식별자 값을 획득한 후 영속성 컨텍스트에 저장
  • TABLE - DB 시퀀스 생성용 테이블에서 식별자 값을 획득한 후 영속성 컨텍스트에 저장
  • IDENTITY - DB에 엔티티를 저장해서 식별자 값을 획득한 후 영속성 컨텍스트에 저장

기본 키 매핑시 주의 사항

데이터베이스 기본 키는 다음 3가지 조건을 모두 만족해야 한다.

  1. NULL값은 허용하지 않는다.
  2. 유일해야 한다.
  3. 변해선 안 된다.

오늘은 @Entity와 @Table, PK 매핑에 대해서 알아보았다. 다음에는 연관관계 매핑에 대해서 알아보자

0개의 댓글