객체와 테이블 매핑 방법

  • @Entitiy: JPA가 관리 하는 엔티티로 등록
    • 속성 name: JPA에서 사용할 엔티티 이름을 지정 디폴트 값은 클래스의 이름
  • @Table
    • 속성 name: 데이터 베이스에 연결될 테이블의 이름 설정
  • 조건
    • 기본 생성자 필수
    • final 클래스 enum, interface, inner 클래스 사용 x
    • 저장할 필드에 final 상용 x

데이터베이스 스키마 자동 생성

<property name="hibernate.hbm2ddl.auto" value="create" />
  • 애플리케이션 로딩 시점에 Create문으로 DB 생성
  • 데이터베이스 방언을 활용해 데이터베이스에 맞는 적절한 DDL 생성
  • 주의점
    • 운영 장비에서는 절대 ceate, create-drop, update 사용하면 안된다.
    • 개발 초기 단계는 create 또는 update
    • 테스트 서버는 update 또는 vaildate
    • 스테이징과 운영 서버는 vaildate 또는 none

필드와 컬럼 매핑

  • @Column(name = "EntityName")
    • updateble: 업데이트 반영 여부 결정 기본값은 true
    • nullable: 널타입 여부 제약조건 설정
    • unique: SQL문의 unique제약 조건
  • @Enumerated: enum 타입 매핑
  • @Temporal
    • DATE: 날짜
    • TIME: 시간
    • TIMESTAMP: 날짜, 시간 둘다 
  • @Lob: barchar을 뛰어넘는 큰 값이 필요로 할 때 사용
    • 문자열에 대응시 Clob으로 생성  
    • 나머지 Blob으로 생
  • @Transient: DB에 올라가지는 않고 메모리에서만 사용하고 싶을 때 사용 

기본 키 매핑

  • @Id

연관관계 매핑

  • @ManyToOne
  • @JoinColumn

+ Recent posts