객체와 테이블 매핑 방법
- @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에 올라가지는 않고 메모리에서만 사용하고 싶을 때 사용
기본 키 매핑
연관관계 매핑