Search
Duplicate
📒

[JPA 기본] 05-1. 연관관계 매핑 - 단방향 연관관계 ⭐

상태
완료
수업
JPA
주제
JPA
연관 노트
3 more properties
참고

단방향 연관관계

NOTE
객체를 테이블에 맞춰 데이터 중심으로 모델링하면, 협력관계를 만들 수 없다.
용어 이해
방향 : 단방향, 양방향
다중성 : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M)
연관관계의 주인 : 객체 양방향 연관관계는 관리가 필요하다

객체 연관관계가 없는 방식

NOTE
객체를 테이블에 맞추어 코드하는 방식이다.
연관관계 없는 엔티티 코드
연관관계 없는 방식 - DB에 조회&저장
외래키 식별자를 직접다루고 있는데, 이럴경우 문제가 있다.
조회할 때 역시 해당 외래키를 가지고 조인 쿼리를 직접 짜야함
member1이 소속된 Team 정보를 조회하려면 다음과 같이 해야한다
Member findMember = em.find(Member.class, member.getId()); // member1을 가져오고 Long findTeamId = findMember.getTeamId(); // 찾은값에서 TeamId를 얻고 Team findTeam = em.find(Team.class, findTeamId); // 그 값으로 Team을 찾음
Java
복사

결론

외래키를 직접 관리하게 되서, 객체간 협력관계가 만들어지지 않고, 객체가 참조를 통해 연관관계객체를 찾는 방식도 적용할 수 없다객체지향 프로그래밍 패러다임 부정

객체 연관관계가 있는 방식

NOTE
객체 지향적으로 엔티티를 설계한다. (연관관계 사용)
연관관계 있는 엔티티 코드
연관관계 있는 방식 - DB에 조회&저장

@ManyToOne

다대일 관계에서 사용하는 방식이다.
[본인]To[반대편] 방식이다

@JoinColumn

외래키를 맵핑할 때 사용한다.