1. JPA 엔티티 맵핑

2. Value 타입 맵핑

3. 1대다 맵핑(단방향)

4. 다대다 맵핑(양방향)

5. Convenience Method

1. JPA 엔티티 맵핑

1-1) JPA 엔티티 맵핑

JPA, 도메인 모델을 만들었으면 테이블에 어떻게 맵핑을 시킬지 정보를 Hibernate한테 주어야 함.

두 가지 방법으로 나눌 수 있고 1) 어노테이션 2) xml. 대부분은 어노테이션 방법으로 사용함.

1-2) JPA 구조

Hibernate 밑단에는 jdbc가 있음. 즉, Spring Data JPA → JPA → Hibernate → Datasource

1-3) 엔티티 맵핑

2. Value 타입 맵핑

2-1) 기본 타입 (String, Data, Boolean ...)

Untitled

2-2) Composite Value 타입

2-2)-1. Address

위치정보로서 고유로 사용하는 경우에는 @Entity 타입으로 될 수 있으나

Account 안의 데이터 정보처럼 하나의 데이터로 취급하기 때문에 Composite Value 타입임.

3. 1대다 맵핑

3-1) 1대다 맵핑

관계는 오직 2개의 Entity끼리의 관계임.

3-2) Account와 Study의 'Study'의 입장에서

→ 한 사람은 여러 개의 Study를 만들 수 있음.

→ 따라서 Study 입장에서는 ManytoOne임.

3-2)-1. Study

Untitled

3-2)-2. JpaRunner

Untitled

Untitled

3-2)-3. Console

→ 관계에 대한 정보는 Study에 Foreign Key로 들어있음.

Untitled

3-3) Account와 Study의 'Account'의 입장에서

→ Account에서 Study를 관리해보려고 함.

→ 자기가 만든 Study 목록을 가지고 있음.

3-3)-1. Account

Untitled

3-3)-2. JpaRunner

Untitled

Untitled

3-3)-3. Console

Untitled

→ 기본적으로 Account table에 있다고 생각하지만 그렇지 않음.

→ OneToMany는 Join Table로 만들어짐.

→ account_studies Table에 Foresign Key 'account_id'와 'sutdies_id'로

→ 만들어 짐.

Untitled

4. 다대다 맵핑(양방향)

4-1) 다대다 맵핑(양방향)

4-2) 다대다 맵핑(양방향) 결론

4-3) Account & Study

4-4) JpaRunner

5. Convenience Method