김영한님이 지음, [자바 ORM 표준 JPA 프로그래밍] 책을 읽고 정리한 필기입니다.📢

엔티티 매핑

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

@Entity

JPA를 사용해서 테이블과 매핑할 클래스는 반드시 해당 어노테이션을 붙여야 한다.

속성 기능 기본값
name JPA에서는 사용할 엔티티 이름을 지정한다. 보통 기본값인 클래스 이름을 사용한다. 만약 다른 패키지에 이름이 같은 엔티티 클래스가 있다면 이름을 지정해서 충동하지 않도록 해야 한다. 설정하지 않으면 클래스 이름을 그대로 사용한다.

주의사항

  • 기본 생성자는 필수(public or protected)
  • final 클래스, enum, interface, inner 클래스에는 사용할 수 없음
  • 지정할 필드에 final 사용하면 안됨

@Table

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

속성 기능 기본값
name 매핑할 테이블 이름 엔티티 이름을 사용한다.
catalog catalog 기능이 있는 데이터베이스에서 catalog를 매핑한다.  
schema schema 기능이 있는 데이터베이스에서 schema 를 매핑한다.  
uniqueConstraints(DDL) DDL 생성 시에 유니크 제약조건을 만든다. 2개 이상의 복합 유니크 제약조건도 만들 수 있다. 이 기능은 스키마 자동 생성 기능을 사용해서 DDL을 만들 때만 사용된다.  

기타 어노테이션

  • @Enumerated : 자바의 enum을 사용한 필드일 경우 해당 어노테이션으로 매핑해야 함
  • @Temporal : 자바의 날짜 타입은 해당 어노테이션으로 매핑 함
  • @Lob : 필드의 길이 제한이 없는 경우 사용 함. 데이터베이스에서는 VARCHAR 타입 대신 CLOG 타입으로 저장해야 함

JPA 카테고리 내 다른 글 보러가기

댓글남기기