
백엔드약 7분
[JPA] 엔티티 일부 데이터만 조회하는 Projection
JPA를 사용해서 엔티티의 일부 데이터만 가져오는 Projection에 대해서 알아보자. 다음과 같은 Comment 엔티티가 존재한다. 필요한 일부 데이터만을 담은 CommentSummary 인터페이스를 만든다.
THE BRIEFLO COLLECTION
연관관계 매핑, 영속성 컨텍스트, 성능 최적화.
최신순 · 13–20편

백엔드약 7분
JPA를 사용해서 엔티티의 일부 데이터만 가져오는 Projection에 대해서 알아보자. 다음과 같은 Comment 엔티티가 존재한다. 필요한 일부 데이터만을 담은 CommentSummary 인터페이스를 만든다.

백엔드약 5분
JpaRepository의 구현체 SimpleJpaRepository에서 save()메서드가 내부적으로 어떻게 동작하는지 알아보자.

백엔드약 2분
JPA에서 null처리 하는 방법에 대해서 알아 보자. JPA에서 단일 엔티티를 조회할 때, Optional객체를 리턴 받도록 설정되어 있다.

백엔드약 4분
도메인 클래스 컨버터에 대해서 알아보자. 도메인 클래스 컨버터는 Spring Data Jpa를 사용하게 되면 Common 프로젝트에 있는 클래스 인데, 간단하게, id 엔티티 타입으로 변환 해주거나, 엔티티 id 로 변환해 주는 컨버터를 제공해준다.

백엔드약 8분
기존의 JpaRepository를 상속받아서 기본적인 CRUD 기능을 사용할 수 있지만, 내가 1)커스텀하게 만들어서 사용하고 싶은 경우와 이미 JpaReposptry에서 제공하는 메서드를 새롭게 2)오버라이딩해서 사용할 수 있는 경우에 대해서 알아보

백엔드약 7분
멤버(Member)와 사물함(Locker) 1:1 매핑 상황을 살펴보고, cascade 옵션이 어떤 상황에서 쓰이는지 알아보자. Member Locker 단방향 1:1 매핑에 대해서 살펴보자.

백엔드약 5분
Spring Data JPA의 Audit 기능에 대해서 알아보자.

백엔드약 6분
JPA 연관관계 매핑중, 실무에서 가장 많이 쓰이는 1:N (일대다) 매핑에 대해서 알아보자. 일대다 매핑을 하기 위해서 하나의 팀에 여러명의 멤버가 속해있는, 1:N 관계를 생각해보자.
GOOD TO KNOW
외래 키를 실제로 관리하는 쪽이 연관관계의 주인입니다. 다대일 관계에서는 외래 키를 가진 다(N) 쪽이 주인이 되며, 반대편에는 mappedBy를 지정합니다. 주인이 아닌 쪽에서 값을 바꿔도 DB에 반영되지 않습니다.
persist는 새 엔티티를 영속 상태로 만들고 그 인스턴스 자체가 관리됩니다. merge는 준영속·비영속 엔티티의 값을 복사한 새로운 영속 인스턴스를 반환하므로, 넘긴 객체가 아니라 반환된 객체를 써야 합니다.
기본은 지연 로딩입니다. 즉시 로딩은 예상하지 못한 조인과 N+1 쿼리를 만들기 쉽습니다. 함께 조회해야 하는 구간은 fetch join이나 엔티티 그래프로 그 시점에만 명시적으로 해결합니다.