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

+ Recent posts