1. 엔티티 매핑 소개
- 연관관계 매핑 : 멤버와 팀, 회원이 어디 소속되어있는지 1대다 , 다대1 다대다
- 객체와 테이블 매핑 : @Entity, @Table
- 필드와 칼럼 매핑 : @Column
- 기본 키 매핑 : @Id
2.Entity
- @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다.
- 기본 생성자 필수 : jpa같은 구현해서 쓰는 라이브러리들은 동적으로 기술들을 할때 필요
- final 클래스, enum, interface, inner 클래스 사용X
- 저장할 필드에 final 사용불가
3. Entity속성
- JPA에서 사용할 엔티티 이름을 지정한다.
- 기본값: 클래스 이름을 그대로 사용(예: Member)
- 같은 클래스 이름이 없으면 가급적 기본값을 사용한다.
4.데이터베이스 스키마 자동 생성
- DDL을 애플리케이션 실행 시점에 자동 생성
- 테이블 중심 에서 객체 중심으로 변화하였다.
- 방언 활용 -> 오라클은 VARCHAR2, MYSQL은 VARCHAR 방언에 맞춰 DDL문을 적절하게 생성해준다.
<property name="hibernate.hbm2ddl.auto" value="create">
ㄴ 해당 코드로 create 모드 이므로 삭제된 후 다시 테이블이 생성된 것을
- create-drop : 테스트시 깔끔 종료할때
- validate : 정상 매핑되었는지 확인할 때 사용한다.
ㄴ validate시 부적절한 column 을 생성했을 때 에러코드가 나타난다.
5. DDL 생성기능
- 제약조건 추가 가능 : 회원 이름은 필수, 10자 초과X
ㄴ @Column(nullable = false, length = 10)
- 유니크 제약 조건 추가
ㄴ@Table(uniqueConstraints = {@UniqueConstraint( name = "NAME_AGE_UNIQUE",
columnNames = {"NAME", "AGE"} )})
- DDL 생성 기능은 DDL을 자동 생성할 때만 사용되고
JPA의 실행 로직에는 영향을 주지 않는다.