본문 바로가기
공부/메모

Spring Jpa의 사실과 오해

by 고구밍 2022. 4. 17.

https://youtu.be/rYj8PLIE6-k

다중성

방향성

단방향 : 한쪽방향으로

양방향 : 상호참조

단방향 매핑만으로 연관관계 매핑은 이미 완료

단방향 매핑에 비해 양방향 매핑은 복잡하고 객체에서 양쪽 방향을 모두 관리해 줘야 함

-> 반대방향으로의 객체 그래프 탐색 기능만 추가 됨

<반대 객체 그래프 탐색이 필요할 때 양방향을 사용>

영속성 전의 (persistence cascade)

Entity의 영속성 상태 변화를 연관된 Entity에도 함께 적용하는 것

연관관계 엔티티들도 저장되고 수정이 됨

추가로 업데이트 쿼리가 발생함

일대다 연속성 전이하는 경우, 추가적으로 업데이트 쿼리가 발생하는 문제

오히려 일대다 양방향 관계로 변경하기

양방향 -> 주인을 설정하는 것이 좋음

외래키

기본키를 외래키로 쓰는 경우@MapsId를 써서 이쪽이 연관관계 주인이라고 알림

반대쪽 -> 조인컬럼 x, mappedBy 주인이 저거다 알려줘야 됨

로딩

다른 엔티티 가져오는

즉시 : eager

참조가 이루어 졌을 때 사용 : lazy

ToOne : EAGER

ToMany : LAZY

시점의 차이 뿐이지 / 여러개의 코드를 가져오는 경우 참조를 하면

추가적인 쿼리가 수행 됨

수행된 다음에 각각에 대해서 연관관계 설정이 발생

패치조인 : 페이지네이션

페이지 내에 어느정도 가져오는지 알수 없음 / 모든 레코드가 가져오는 것이 되게 되는 경우도 있음

LIST를 SET으로 병경, @OrderColumn

Repository

중재

매서드 자동 제공

 

페이즈인터페이스가 슬라이스 인터페이스를 상속받고잇음

엔터티가 반환됨

타겟 : 멤버디테일 엔티티가 get 타입으로 메소드를 할 수 잇다?

일대다(1:N) 단방향 연관관계 매핑에서 영속성 전이(cascade)를 사용할 경우 양방향으로 변경

'공부 > 메모' 카테고리의 다른 글

예외처리를 알아보자 - 2  (0) 2022.04.20
예외 처리를 알아보자 - 1  (0) 2022.04.20
JPA의 @Enumerated을 알아보자 - 2  (0) 2022.04.16
JPA 지연 로딩과 즉시 로딩  (0) 2022.04.16
JPA의 @Enumerated를 알아보자 - 1  (0) 2022.04.16