반응형
JPA 사용에 있어 가장 중요한 일은 엔티티와 테이블을 정확히 매핑하는 것이다. 따라서 매핑 어노테이션을 숙지하고 있어야 한다.
대표 어노테이션
- 객체와 테이블 매핑 : @Entity, @Table
- 필드와 컬럼 매핑 : @Column
- 기본 키 매핑 : @Id
- 연관관계 매핑 : @ManyToOne, @JoinColumn
객체와 테이블 매핑
@Entity
- JPA를 사용해서 테이블과 매핑할 클래스는 @Entity를 붙여서 사용한다.
- @Entitiy가 붙은 클래스는 JPA가 관리하며, 엔티티라고 한다.
적용 시 주의사항
- 기본 생성자는 필수이다(파라미터가 없는 public 또는 protected 생성자).
- final 클래스, enum, interface, inner 클래스에는 사용할 수 없다.
- 저장할 필드에 final을 사용하면 안된다.
@Entity 속성 정리
속성 | 기능 | 기본값 |
name | JPA에서 사용할 엔티티 이름을 지정한다. 보통 기본값인 클래스 이름을 사용한다. 동일 클래스 명이 없다면 가급적 기본적을 주로 사용한다. | 설정하지 않으면 클래스 이름을 그대로 사용한다. |
@Table
@Table은 엔티티와 매핑할 테이블을 지정한다. 생략하면 매핑한 엔티티 이름을 테이블 이름으로 사용한다.
@Table 속성 정리
속성 | 기능 | 기본값 |
name | 매핑할 테이블 이름 | 엔티티 이름을 사용한다. |
catalog | catalog 기능이 있는 데이터베이스에서 catalog를 매핑한다. | |
schema | schema 기능이 있는 데이터베이스에서 schema를 매핑한다. | |
uniqueConstraints(DDL) | DDL 생성 시에 유니크 제약조건을 만든다. 2개 이상의 복합 유니크 제약조건도 만들 수 있다. 참고로 이 기능은 스키마 자동생성 기능을 사용해서 DDL을 만들 때만 사용된다. |
참조
반응형
'Framework > JPA' 카테고리의 다른 글
[JPA] 엔티티 매핑 - 필드와 컬럼 매핑 (0) | 2024.03.14 |
---|---|
[JPA] 엔티티 매핑 - 데이터베이스 스키마 자동 생성 (0) | 2024.03.14 |
[JPA] 준영속 상태 (0) | 2024.03.13 |
[JPA] 플러시(flush) (0) | 2024.03.13 |
[JPA] 영속성 컨텍스트의 특징 (0) | 2024.03.12 |