JPA 사용
JPA을 사용함에 있어서 가장 중요한 일은 엔티티와 테이블을 정확히 매핑하는 것.
JPA가 지원하는 대표적인 어노테이션은 크게 4가지가 존재한다.
JPA 어노테이션
- 객체와 테이블 매핑 : @Entity, @Table
- 기본 키 매핑 : @Id
- 필드와 컬럼 매핑 : @Column
- 연관관계 매핑 : @ManyToOne, @JoinColumn
@Entity
JPA를 사용하여 테이블과 매핑할 클래스는 해당 어노테이션을 붙혀야한다.
@Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라고 부른다.
- 엔티티 속성
- name : 엔티티 이름을 지정한다. (기본값 : 클래스 이름) 이름 충돌에 주의해야 한다.
- 적용시 주의사항
- 기본 생성자 필수(파라메터 없는 public, protected 생성자)
- final, enum, interface, inner 클래스에서 사용 불가
- 값을 저장할 필드에 final 사용 불가
@Table
엔티티와 매핑할 테이블을 지정한다. 테이블 이름을 지정하지 않으면, 매핑한 엔티티 이름을 테이블 이름으로 사용한다.
- 테이블 속성
- name : 매핑할 테이블 이름 (기본값 : 엔티티 이름)
- catalog : catalog 기능이 있는 DB에서 catalog를 매핑한다.
- schema : schema 기능이 있는 DB에서 schema를 매핑한다.
- uniqueConstaints : DDL 생성 시 유니크 제약 조건을 만든다. 2개 이상의 복합 유니크 제약 조건 생성 가능, 스키마 자동 생성 기능을 사용하여 DDL을 만들 때만 사용가능
catalog?
시스템 자체에 관련이 있는 다양한 객체에 관한 정보를 포함 하는 시스템 DB
DB 시스템에서 데이터가 실제로 읽혀지거나 수정되기 전에 먼저 참고 되는 파일
카탈로그에 저장된 데이터를 메타 데이터라고 한다.
카탈로그 생성 시 자료 사전에 저장됨으로 좁은 의미로 자료사전이라고 한다.
[스키마가 저장되는 장소이다.]
shema?
스키마는 DB의 구조와 제약 조건에 관한 전반적인 명세를 정의한 메타데이터의 집합