본문 바로가기

Java, Spring/스프링부트와 JPA 활용 1

2-4. 엔티티 클래스 개발2(다대다)

 

 

------------------------------------------------------------------------------------------------------------------

 

중간테이블 매핑..객체는 컬렉션:컬렉션이라 다대다 가능한데
 RDB는 컬렉션관계를 양쪽에 가질 수 있는게 아니라 일대다, 다대일 테이블로 풀어야함.

 

--> 다대다는 실전에서 쓰지 마라. ( 필드 추가 등등 불가 ) ( 이런게 된다는 정도만 이해 )

 

 

여기에서 CATEGORY_ITEM 의 ITEM_ID(FK) 로 ITEM테이블에 걸고,

CATEGORY_ID(FK) 로 CATEGORY에 걸자.

 

 

카테고리구조 == 계층구조( 부모, 자식 알아야함 )

같은 엔티티에 대해서 셀프로 양방향연관관계 걸음.

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------------

================================================

추가 백기선 유튜브:youtube.com/watch?v=brE0tYOV9jQ

Book.java

- 일대다 양방향 매핑은 (일대다 단방향) + (다대일 단방향) 이다.

- 연관관계 주인 쪽에 관계가 설정 되어야 DB에 반영된다.

( 우리는 연관관계 편의 메서드를 만들었다. )

BookStore.java

- 이 때 관계의 주인은 Book인데 book에는 관계설정하지말고 자기 자신에게만 관계를 설정 -> DB가 싱크 할게 없음. -> 그래서

book 테이블에 book_store_id  가 안들어감.

 

- mappedBy("여기") : 여기에 들어간 게 연관관계주인이다.

BookStore.java

이렇게 연관관계 주인인 Book 쪽에 bookstore를 설정해줘야 DB에 반영.

- 양방향 관계에서는 서로 관계설정(값넣어주기) 를 해주는게 맞다.

Order.java

우리는 양방향을 이렇게 연관관계 설정을 해주었다. 아주 편하다.

 

@OneToMany의 mappedBy 속성은 양방향 매핑일 때 사용하는데, 반대쪽 매핑의 필드 이름을 값으로 주면 됩니다.

@OneToMany의 mappedBy 속성은 양방향 매핑일 때 사용하는데, 반대쪽 매핑의 필드 이름을 값으로 주면 됩니다.

@OneToMany의 mappedBy 속성은 양방향 매핑일 때 사용하는데, 반대쪽 매핑의 필드 이름을 값으로 주면 됩니다.

@OneToMany의 mappedBy 속성은 양방향 매핑일 때 사용하는데, 반대쪽 매핑의 필드 이름을 값으로 주면 됩니다.

@OneToMany의 mappedBy 속성은 양방향 매핑일 때 사용하는데, 반대쪽 매핑의 필드 이름을 값으로 주면 됩니다.

@OneToMany의 mappedBy 속성은 양방향 매핑일 때 사용하는데, 반대쪽 매핑의 필드 이름을 값으로 주면 됩니다.

 

https://dont-be-evil.tistory.com/218 여기 참고.

 

------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

-----------------------------------------------------------------------------------------------엔티티 개발 끝..1!!!!

 

이렇게 설계한대로 만들어졌나?

 

 

 

JPA는 alter로 FK 다잡아줌.

 

 

 

 

 

---------------------------------------------------------------------------------------------------------------------------

값 타입 Address

JPA 스펙 상 엔티티, 임베디드타입은 기본생성자를 protected로 두자!!!

JPA 스펙 상 엔티티, 임베디드타입은 기본생성자를 protected로 두자!!!

JPA 스펙 상 엔티티, 임베디드타입은 기본생성자를 protected로 두자!!!

JPA 스펙 상 엔티티, 임베디드타입은 기본생성자를 protected로 두자!!!

 

Recent Posts
Popular Posts
Recent Comments