객체와 테이블 매핑
@Entity
- JPA가 관리하는 엔티티
- 테이블과 매핑할 클래스에 필수
- 기본 생성자 필수, final, enum, interface, inner 클래스 사용 X
- 저장할 필드에 final 사용 X
- 속성 name은 클래스 이름이 기본값으로 사용됨 jpa가 내부적으로 구분하기 위함
@Table(name = "MBR")
데이터베이스 스키마 자동 생성
- 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