객체와 테이블 매핑
@Entity
- 테이블과 매핑할 클래스에 필수로 사용되는 어노테이션
- name 속성을 이용하여 JPA에서 사용할 엔티티 이름을 지정한다. 설정하지 않으면 기본값이 클래스 이름으로 설정된다.
- 다른 패키지에 이름이 같은 엔티티 클래스가 있을 경우 이름을 지정하여 충돌을 피하여한다
- 기본 생성자는 필수, final 클래스, enum, interface, inner 클래스에는 사용하면 안 된다.
@Table
- 엔티티와 매핑할 테이블을 지정(생략할 경우 매핑할 엔티티의 이름을 테이블 이름으로 사용된다.)
- name : 매핑할 테이블 이름(기본값 = 엔티티이름)
- catalog : catalog 기능이 있는 DB에서 catalog를 매핑
- schema : schema 기능이 있는 DB에서 schema를 매핑
@Column
- 컬럼을 매핑한다.
- name 속성을 이용하여 매핑할 컬럼을 지정(default는 객체의 필드 이름)
@Enumerated
- java의 enum타입 매핑
- value 속성을 이용하여 DB에 저장할 값을 지정한다.
1. EnumType.Ordinal : enum의 순서를 DB에 저장(default)
2. EnumType.String : enum의 이름을 저장
@Temporal
- 날짜 타입을 매핑
- value 속성을 이용하여 DB값을 저장해야 한다. value 속성 필수
1. TemporalType.DATE : 날짜, DB의 date 타입과 매핑(ex 2024-04-21)
2. TemporalType.TIME : 날짜,DB의 time 타입과 매핑(ex. 13:14:22)
3. TemporalType.TIMESTAMP : 날짜와 시간, DB의 timestamp타입과 매핑(ex. 2024-04-21 13:14:22)
@Lob
- BLOB,CLOB타입을 매핑
@Transient
- 특정 필드를 db에 저장하지 않고 JPA에 저장
'Java > JPA' 카테고리의 다른 글
[JPA]영속성 컨텍스트 (0) | 2024.04.17 |
---|---|
[JPA] ORM와 JPA (0) | 2021.05.28 |
댓글