이거 보고 @Entity public class Member 생성.
@Embeddable로 JPA의 내장타입(어디에 내장될수있음을 표시)
@Getter 는 열어두자.
![]() |
![]() |
Order 클래스 Member 클래스
서로 양방향연관관계이므로 연관관계주인을 정해줘야됨. ( 보통 다 쪽에 정함 )
서로 값을 바꿀 수 있으므로 JPA는 둘 중에 뭘보고 확인을 해야하는지 혼란. ( 관리하기도 어려움. )
-> 연관관계주인을 정해서 걔가 바꾸는 값만 따르자..-> 다 쪽에 FK잡자.
many 쪽인 orders 테이블 쪽이 연관관계주인이 된다. FK이름을 member_id로 정한다.
(연관관계주인=FK와 가까운 것)
다대일에서는 다쪽이 연관관계주인(FK가까운쪽(다 쪽이 FK를가지므로)). 일대일에서는 FK가까운쪽이 연관관계주인.(FK는 access많이 하는 쪽으로 정함. )
=-> 여기선 delivery에서 orders 접근보다 orders에서 delivery 접근이 더 많으므로 orders에 FK.
( 연관관계 주인에는 @ManyToOne과 @JoinColumn은 한몸, @OneToMany(mappedBy="") 형식 기억해두기. )
#무조건 중요....
연관관계주인 : @ManyToOne -> @JoinColumn(매핑할 칼럼명)(=보통 One쪽테이블의 PK명)
@OneToOne -> @JoinColumn(자기 필드_id)
거울 : @OneToMany -> (mappedBy = "주인쪽 필드명")
@OneToOne -> (mappedBy = "주인쪽 필드명")
# OneToOne
(DELIVERY-ORDERS)
# Item과 그 밑에 3개
상속관계이므로 @Inheritance, dtype으로 구분하므로 @DiscriminatorColumn(식별이라는 뜻)
각각 상속클래스에서 DB에 저장될 때 구분자역할을 하는 @DiscriminatorValue를 정해준다. 보통 클래스의 앞글자를 적는다.
-> 다음 강의 : 남은 category 엔티티 만들자.
결론 :
'Java, Spring > 스프링부트와 JPA 활용 1' 카테고리의 다른 글
4-1. 회원 리포지토리 개발 ~ 4-2. 회원 서비스 개발 (0) | 2022.08.12 |
---|---|
2-5. 엔티티 설계시 주의점 (0) | 2022.08.11 |
2-4. 엔티티 클래스 개발2(다대다) (0) | 2022.08.11 |
2-1. 요구사항 분석 (0) | 2022.08.11 |
1-3. View 환경 설정 ~ 1-5. (0) | 2022.08.11 |