티스토리 뷰
해당 테이블 같을 때에 멤버가 팀에 소속되긱에 멤버(N) : 팀(1)의 관계가 된다.
객체관계에서는 TEAM_ID를 가지고 있는 것은 객체지향스럽지 않다고 한다. TEAM 객체 자체를 가지고 있어야한다.
TABLE 관점에서는 TEAM_ID를 가지고 있는 것이 맞다.
MEMBER 객체 안에 TEAM_ID가 아닌 TEAM 자체를 넣어준다.
@ManyToOne
@JoinColumn(name="TEAM_ID")
private Team team;
MEMBER가 N이기 떄문에 @MantToOne 관계라는 것을 어노테이션해준 뒤 DB에게 알려줄 JoinColumn을 알려준다.
이건 내가 team을 찾기 위해 필요했던 FK를 생각하면 된다.
Team team = new Team();
team.setName("TeamA");
em.persist(team);
Member member = new Member();
member.setUsername("member1");
member.setTeam(team); //team을 set한다.
em.persist(member);
em.flush();
em.clear();
Member findMember = em.find(Member.class, member.getId());
Team team1 = findMember.getTeam();
System.out.println("findTeam = " + team1);
member를 저장할 때에 team을 넣을 수 있게 된다. db에서는 자연스럽게 TEAM_ID만 저장 시키는 구조가 된다.
Hibernate:
/* insert jpabook.jpashop.domain.Team
*/ insert
into
Team
(name, TEAM_ID)
values
(?, ?)
Hibernate:
/* insert jpabook.jpashop.domain.Member
*/ insert
into
Member
(TEAM_ID, USERNAME, MEMBER_ID)
values
(?, ?, ?)
Hibernate:
select
member0_.MEMBER_ID as MEMBER_I1_1_0_,
member0_.TEAM_ID as TEAM_ID3_1_0_,
member0_.USERNAME as USERNAME2_1_0_,
team1_.TEAM_ID as TEAM_ID1_4_1_,
team1_.name as name2_4_1_
from
Member member0_
left outer join
Team team1_
on member0_.TEAM_ID=team1_.TEAM_ID
where
member0_.MEMBER_ID=?
로그 내역
변경 때도 똑같다.
findMember.setTeam(newTeam);
변경감지로 자동 업데이트 된다.
'dev > JPA 기본' 카테고리의 다른 글
다중성 - 다대일과 일대다, (1) | 2024.02.02 |
---|---|
양방향 매핑시 가장 많이 하는 실수 (0) | 2024.02.01 |
양방향 연관관계와 연관관계의 주인 (1) | 2024.02.01 |
기본 키 매핑 (1) | 2024.01.31 |
필드와 컬럼 매핑 및 속성들 (1) | 2024.01.31 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 스프링공부
- 향해플러스백엔드
- 향해99
- 항해99
- 백엔드 개발자 역량
- React
- ArgumentResolver
- reject
- 향해플러스
- rejectValue
- Intercepter
- BindingResult
- 항해플러스
- 컨트
- thymleaf
- jpa api
- exception
- JPA
- hypertexttransferprotocol
- 백엔드 개발자 공부
- 예외처리
- HTTP
- 스프링부트
- 리터럴
- filter
- Java
- 로그인
- SpringBoot
- 인터셉터
- react실행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함