Skip to content

kimini02/spring-1-1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spring-1-1

[실습2-4] 도서 관리 시스템 - 1:1 연관관계

구현한 것

BookBookDetail@OneToOne으로 연결하여 1:1 연관관계를 구현하고, CRUD + PUT/PATCH API를 완성했다.

설계

  • 기본 정보(Book)와 상세 정보(BookDetail)를 분리하여 목록 조회 시 불필요한 데이터를 가져오지 않도록 했다.
  • 외래키는 BookDetail에 두어 관계의 주인으로 설정했고, Book 쪽에 CascadeType.ALL을 적용해 저장/삭제가 함께 처리되게 했다.
  • 조회 시 N+1 문제를 방지하기 위해 Fetch Join JPQL을 작성했다.
  • 수정은 PUT(전체)과 PATCH(부분)를 나누고, DTO를 분리해서 순환 참조를 방지했다.

배운 점

  • @JoinColumn이 있는 쪽이 관계의 주인이고, mappedBy는 참조만 한다는 개념을 이해했다.
  • FetchType.LAZY와 Fetch Join의 차이, 그리고 N+1 문제가 왜 발생하는지 알게 되었다.
  • PUT과 PATCH의 차이를 실제로 구현하면서 체감할 수 있었다.
  • DTO 분리가 순환 참조 방지와 유효성 검증에도 필요하다는 걸 배웠다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages