객체 매핑하기
- @Entity : JPA가 관리할 객체
- @Id : DB의 PK와 매핑할 필드
- persistence.xml : JPA 속성 파일
- hibernate.dialect 속성에 각 DBMS 언어 지원
EntityManagerFactory
- JPA는 Persistence 클래스에서 설정 정보를 읽는다.
- 이후 Persistence에서 EntityManagerFactory를 생성한다.
- EntityManagerFactory는 EntityManager를 생성한다.
매핑 어노테이션
- @Column
- name : 필드와 매핑될 테이블의 칼럼 이름을 지정
- insertable, updatable : T/F 설정, 읽기 전용 여부를 지정
- nullable, unique
- length : 길이 제한
@Column(name = "USERNAME")
- @Temporal
- 시간과 관련된 매핑 (Date, LocalDatetime)
- @Enumerates
- Enum 타입 매핑을 지원한다.
- 기본 값은 EnumType.ORDINAL 이다. 이 설정에서는 Enum 순서대로 숫자가 매핑되는데, 이 중간에 새로운 필드가 추가되면 값들이 꼬일 확률이 높다.
- 따라서 EnumType은 STRING으로 설정할 것을 권장한다.
@Enumerated(EnumType.STRING)
- @Lob
- 컨텐츠의 길이가 너무 길어 바이너리 파일로 DB에 삽입할 경우에 사용
- CLOB(Char, String), BLOB(Binary) 매핑
- @Transient
- 해당 필드를 매핑하지 않는다.
식별자 매핑 어노테이션
- @Id
- @GeneratedValue(strategy = GenerationType.[타입])
- IDENTITY : 데이터베이스에 위임 (MYSQL)
- SEQUENCE : 시퀸스 오브젝트 사용, @SequenceGenerator 필요 (ORACLE)
- TABLE : 키 생성 테이블 사용, @TableGenerator 필요
- AUTO : 자동 지정
식별자 선택 전략
- PK의 조건 : 무결성, 유일성, 불변성
- 일반적으로 Long 형태의 대체 키를 생성해 사용
Reference
자바 ORM 표준 JPA 프로그래밍
'Framework > JPA' 카테고리의 다른 글
[JPA] 영속성 컨텍스트 (Persistence Context) - (1) (0) | 2021.03.30 |
---|---|
[JPA] 상속관계 매핑 (0) | 2021.03.30 |
[JPA] 다양한 연관관계 (0) | 2021.03.19 |
[JPA] 연관관계 매핑 (0) | 2021.03.16 |
[JPA] JPA 소개 (0) | 2021.03.16 |