[JPA] 객체 지향 모델링 하기 (feat.연관 관계 매핑)

옹심이·2024년 12월 17일
0
post-thumbnail

시작하며

데이터 중심 설계의 문제점 포스트에서 알아 보았듯 객체를 테이블에 끼워 맞춰 설계를 하면 객체 간의 협력 관계를 만들 수 없다.

테이블은 외래 키로 조인을 사용해 연관된 테이블을 찾고 객체는 참조를 사용해 연관된 객체를 찾아야 하는데 불가능해진다.

JPA는 연관 관계 매핑을 제공하여 이러한 부분을 해결할 수 있게 도와준다

연관 관계 매핑을 적용해보고 달라진 점을 확인해보자

객체 지향 모델링으로 변경하기

연관 관계 매핑 사용

데이터 중심 설계의 문제점 포스트에서 데이터 중심 설계에는 문제가 있으며, Member 객체와 Team 객체 간의 협력 관계가 필요성을 강조하였다. JPA는 어떻게 이를 만족 시켜줄까

JPA의 연관 관계 매핑 기능으로 데이터 중심 설계에서 벗어날 수 있다.

  • teamId를 Team객체로 변경, @ManyToOne으로 Member ↔ Team 테이블 간의 N:1 연관 관계를 명시하여 자바 어플리케이션의 코드에서 참조를 통해 협력 관계를 구축할 수 있도록 도와준다.
  • @JoinColumn의 name 속성 값을 Member 테이블의 TEAM에 관한 외래 키 식별자로 명시하였다. 이를 Member테이블과 Team테이블이 조인될 때 사용되는 외래 키를 지정해 줄 수 있다.

변경된 조회 로직 확인

이전과 다르게 Member 객체에서 참조를 통해 Team객체에 접근이 가능한 것을 확인할 수 있다.

0개의 댓글