김영한님이 지음, [자바 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 타입으로 저장해야 함
댓글남기기