T아카데미 - JPA 프로그래밍 기초 - [3강] 필드와 컬럼 매핑
데이터베이스 스키마 자동 생성
- 애플리케이션 실행 시점에 자동 생성됨
- 방언을 사용하여 데이터베이스에 맞는 적절한 DDL 생성
- 개발 장비에서만 사용!
- hibernate.hbm2ddl.auto
1. create : 기존 테이블 삭제 후 재생성
2. create-drop : create와 같으나 종료시점에 테이블 drop
3. update : 변경분만 반영 (운영DB 사용 X)
4. validate : 엔티티와 테이블이 정상 매핑되어있는지만확인
5. none : 사용하지 않음
- 개발 초기 : create, update
- 테스트 서버 : update, validate
- 운영 서버 : validate, none
매핑 어노테이션
1. @Column - 디비 기준 컬럼명
@Column(name = "USERNAME")
private String name;
* 옵션
- insertable , updatable false 시 값이 들어가지 않음
- nullable fasle 시 not null 제약조건 들어감
- unique 유니크 제약조건
2. @Temporal - 날짜타입 매핑
@Temporal(TemporalType.DATE)
private Date date;
3. @Enumerated(EnumType.STRING)
4. @Lob
- 데이터가 너무 길 경우 바이너리로 변환
- CLOB - String, BLOB - Byte
5. @Transient
- 디비와 매핑하지 않고 객체만 가지고 있음
식별자 매핑
- @Id (직접매핑)
1. @Id @GeneratedValue(strategy = GenerationType.AUTO)
- Mysql AutoIncrement 기능과 같음
2. @Id @GeneratedValue(strategy = GenerationType.SEQUENCE)
- 데이터베이스 시퀀스 오브젝트 사용 ORACLE
- @SequenceGenerator 필요
3. @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
- DB에게 위임
4. @Id @GeneratedValue(strategy = GenerationType.TABLE)
- 키 생성용 테이블 사용, 모든 디비에서 사용 가능
- @TableGenerator 사용
5. @Id @GeneratedValue(strategy = GenerationType.AUTO)
- 방언에 따라 자동지정 , Default 값
권장하는 식별자 전략
- Long + 대체키 + 키 생성전략 사용
'Back-end > Jpa' 카테고리의 다른 글
순수 JPA - JPA 객체지향쿼리 (0) | 2021.06.01 |
---|---|
순수 JPA - JPA 내부구조 (0) | 2021.06.01 |
순수 JPA - 양방향 매핑 (0) | 2021.06.01 |
순수 JPA - 연관관계 매핑 (0) | 2021.06.01 |
순수 JPA - JPA 기초 (0) | 2021.06.01 |