엔티티 매핑

rooni97·2022년 3월 31일
0

객체와 테이블 매핑

@Entity

  • JPA가 관리하는 엔티티
  • 테이블과 매핑할 클래스에 필수
  • 기본 생성자 필수, final, enum, interface, inner 클래스 사용 X
  • 저장할 필드에 final 사용 X
  • 속성 name은 클래스 이름이 기본값으로 사용됨 jpa가 내부적으로 구분하기 위함

@Table(name = "MBR")

  • 속성 name은 매핑할 테이블 이름

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

  • DB방언을 활용하여 DB에 맞는 적절한 DDL 생성
  • 개발에서만 사용, 운영서버는 X
  • hibernate.hbm2ddl.auto -> create, create-drop, update, validate(정상 매핑 확인)
  • @Column, @Enumerate, @Lob, @Temporal, @Transient

기본키 매핑

  • @Id, @GeneratedValue
  • IDENTITY 속성의 경우 insert하고 나서 id 값을 알 수 있다. insert하기 전 id 값이 null이므로 id 값을 알 수 없는데 persist하는 순간 insert문을 날림 -> 식별자(기본키) 조회가 가능 but 쿼리문을 모아서 보내는 게 불가능
  • SEQUENCE 속성의 경우 persist하는 순간 next value값을 가져오므로 쿼리문을 모아서 보내는게 가능, allocationSize

0개의 댓글