맵을 사용한 맵핑 맵 맵핑하기 Entity를 참조하는 값 특징 Map<Long, BId> 처럼, Bid의 주키값을 맵의 키값으로 가지는 콜렉션으로 맵핑할 수 있다. 애플리케이션에서만 다를 뿐, 테이블은 변한 거 없다. Bid에 ITEM_ID 외례키 컬럼이 생긴다. 맵핑하기 Item.java @MapKey(name = "id")@OneToMany(mappedBy="item")private Map<Long, Bid> bids = new HashMap&
하이버네이트 Join Table에 컬럼 추가하기 특징 연관 테이블에 추가 속성이 필요할 수 있다. 연관 테이블을 Intermediate Entity로 맵핑하기 특징 연관 테이블로 맵핑 될 새로운 테이블을 작성한다. 양방향 네이게이션이 가능하다.(장점) 연관 클래스를 생성하고 제거하는데 관리해야하는 코드가 늘어난다.(단점) Category나 Item을 추가할 때 CategoryItem에 Cascade 옵션을 사용해서 transitive persistence를 사용할 수 있다.(12장에서 다룸) 맵핑하기 CategoryItem.
하이버네이트 ManyToMany 관계 맵핑 단방향 다대다 관계 대부분 추가적인 정보가 필요하기 때문에, 별도의 assiation class를 만들게 된다. 여기서는 간단한 다대다 맵핑. Set 타입으로 맵핑하기 Category.java @ManyToMany@JoinTable(name = "CATEGORY_ITEM", joinColumns = @JoinColumn(name = "CATEGORY_ID"), inverseJoinColumns = @JoinColumn(name = "ITEM_ID"))private Set<Item> items = new HashSet<Item>(); 이 때는