@ManyToOne
단방향, 양방향
- 테이블 - 외래 키 하나로 양쪽 조인가능
- 객체 - 참조용 필드가 있는 쪽으로만 참조 가능
- 객체 양방향 관계는 참조가 2군데가 있어서 외래키를 관리할 곳을 정해야함
- 주인의 반대편: 외래 키에 영향을 주지 않음
- 단순 조회만 가능
- 다쪽에 외래키가 있음
@ManyToOne
@JoinColumn(name="team_id")
private Team team;
@OneToMany(mappedBy = "team")
private List<Member> memberList = new ArrayList<>();
@OneToMany - 잘 안쓰임..
테이블에는 다쪽에 외래키가 있어서 외래키가 매칭이 맞지 않음
⇒ 다대일 양방향이 더 좋다.
@ManyToOne
@JoinColumn(name="team_id")
private Team team;
@OneToMany(mappedBy = "team")
private List<Member> memberList = new ArrayList<>();
@OneToOne
Member - Locker와의 관계
Member
@OneToOne
@JoinColumn(name="locker_id")
private Locker locker;
Locker
@OneToOne(mappedBy="locker")
private Member member;
일대일은 정답이 없음
@ManyToMany
Member 입장
@ManyToMany
@JoinTable(name = "MEMBER_PRODUCT")
private List<Product> products = new ArrayList<>();
Product 입장
@ManyToMany(mappedBy = "products")
private List<Member> members = new ArrayList<>();
* 편해보이지만 한계가 있음
다대다는 매핑 정보만 들어가고 다른 정보를 넣을 수가 없음
중간 테이블이 숨겨져있어서 쿼리가 이상하게 날라갈 때가 있음
'spring boot > JPA - 기본' 카테고리의 다른 글
| JPA - proxy(프록시) (0) | 2021.11.13 |
|---|---|
| JPA - 상속관계 매핑 (0) | 2021.11.08 |
| JPA - 연관관계 매핑 (0) | 2021.10.26 |
| jpa - 엔티티 매핑 (0) | 2021.10.21 |
| JPA - 기본 개념과 영속성 (0) | 2021.10.18 |