자바 ORM 표준 JPA 프로그래밍 - JPA 기본매핑/연관관계 매핑

eunsiver·2022년 3월 8일
0

기본 매핑

데이터 중심 설계의 문제점

  • 이 방식은 객체 설계를 테이블 설계에 맞춘 방식
  • 테이블의 외래키를 객체에 그대로 가져옴
  • 객체 그래프 탐색이 불가능
  • 참조가 없으므로 UML도 잘못됨.

--> 객체를 테이블에 맞춰 데이터 중심으로 모델링하면, 협력 관계를 만들 수 없다.

  • 테이블은 외래키로 조인하여 연관된 테이블을 찾음

  • 객체는 참조를 사용하여 연관된 객체를 찾음

--> 테이블과 객체는 이런 큰 간격이 있다.

PK(Primary Key)

  • 주 식별자로 테이블의 모든 데이터를 식별하는 컬럼
  • 중복 불가, NULL 불가
  • 함수적 종속 관계

FK(Foreign Key)

  • 외부 식별자키로 테이블 간의 관계 의미
  • 두 테이블 간의 종속이 필요한 관계면 그 접점이 되는 칼럼을 FK로 지정하여 서로 참조할 수 있도록 관계를 맺어준다.
  • 테이블 간 잘못된 매핑을 방지하는 역할

연관 관계 매핑

객체의 참조와 테이블의 외래 키를 매핑

@Entity
 public class Member { 
 @Id @GeneratedValue
 private Long id;
 @Column(name = "USERNAME")
 private String name;
 private int age;
// @Column(name = "TEAM_ID")
// private Long teamId;
 @ManyToOne
 @JoinColumn(name = "TEAM_ID")
 private Team team

Member 입장에서 Team은 ManyToOne

//팀 저장
 Team team = new Team();
 team.setName("TeamA");
 em.persist(team);
 //회원 저장
 Member member = new Member();
 member.setName("member1");
 member.setTeam(team); //단방향 연관관계 설정, 참조 저장
 em.persist(member);
 //조회
 Member findMember = em.find(Member.class, member.getId()); 
//참조를 사용해서 연관관계 조회
 Team findTeam = findMember.getTeam();

링크텍스트

profile
Let's study!

0개의 댓글