실전 예제
Last updated
Was this helpful?
Last updated
Was this helpful?
order와 delivery는 1:1, product과 category는 N:M이다.
member, order, delivery 관계에서 FK는 주 테이블인 orders에 넣는다. category와 item은 다대다 관계에서 중간 테이블을 둔다. 여기서는 연습용으로 @ManyToMany를 사용한다.
category와 item은 다대다 관계이지만 중간 테이블을 만들지 않았다.
예제에서는 item과 category 사이에 @ManyToMany
를 썼지만 실전에서는 사용하지 않는다.
중간 테이블을 이용해 일대다, 다대일로 풀어낸다.
실전에서는 중간 테이블이 단순하지 않기 때문이다.
필드를 추가할 수도 없고 엔티티와 테이블이 일치하지 않아 제약이 많다.
외래 키를 매핑할 때 사용한다.
외래 키가 참조하는 대상 테이블의 칼럼명이 다를 때는 referencedColumnName을 사용해 지정해준다.
fetch, cascade
추후 설명한다.
targetEntity
제네릭이 없던 시절에 사용하던 옵션이라 몰라도 된다.
속성 설명에 다대일은 mappedBy가 없고 일대다는 있다.
즉, 다대일이 붙은 곳은 꼭 연관 관계의 주인이 되어야 한다는 뜻이다.