Spring/JPA
엔티티 매핑
Seok_IN
2022. 7. 8. 01:50
@Entity
클래스 앞에 붙여 JPA가 관리하여 엔티티라고 한다.
DB 스키마 생성 속성
<property name="hiberante.hbm2ddl.atuo" value="create">
@Coulmn : 컬럼 매핑
- name : 필드와 매핑할 테이블의 컬럼 이름
- insertable, updatable : 등록, 변경 가능여부
- nullable : null허용 여부
- unique : 유니크 제약조건
- columnDefintion : 컬럼 정보 직접 줄 수 있음 (Ex . varchar(100) default 'EMPTY')
- length : String 타입에만 적용되는 문자길이 제약 조건
@Temporal: 날짜 타입 매핑
@Enumerated : ENUM타입 매핑
- EnumType.String을 사용하자! EnumType.ORDINAL은 순서로 저장이 된다.
@Lob : BLOB, CLOB 매핑
@Transient : 특정 필드를 매핑
기본키 매핑
@Id : 직접할당
@GeneratedValue : 자동생성
- IDENTITY : DB에 위임
- SEQUENCE : 데이터베이스 시퀀스 오브젝트 사용, @SequenceGenerator
* SequenceGenerator에서 allocationSize라는 속성이 있는데 이는 DB에 매번 시퀀스를 호출하지 않기 위해서 존재하는 속성이다. https://dololak.tistory.com/479 참고
- TABLE : 키 생성용 테이블 사용, @TableGenerator
- AUTO : 방언에 따라 자동지정