Bibi's DevLog 🤓🍎

[SpringDataJDBC] Map으로 1:N 관계 맵핑하기 본문

🖥 BE 백엔드/Spring 스프링

[SpringDataJDBC] Map으로 1:N 관계 맵핑하기

비비 bibi 2021. 4. 30. 19:47

맵으로 1:N 관계 맵핑

@MappedCollection() : 맵의 키에 기존 키를 맵핑하기.

  • idColumn="" : id로 쓸 테이블컬럼명 지정. (외래 키로 연결해 준) Dish의 카테고리
  • keyColumn="" : 맵의 key값으로 쓸 테이블컬럼명 지정

이번 미션의 경우..

Category : Dish 가 1:N 관계이므로

1인 Category가 N인 Dish들의 Map(dishes)을 가져야 한다.

dishes가 갖는 ID

Category.java

public class Category {

    @Id
    private Long id;
    private String name;
    private CategoryType type;

    @MappedCollection(idColumn = "category", keyColumn = "id")
    private Map<String, Dish> dishes = new HashMap<>();

    // ...
}

Dish.java

public class Dish {

    @Id
    private String id;

    private String mainImage;
    private String alt;
    private String deliveryType;
    private String title;
    private String description;
    private String normalPrice;
    private String sellingPrice;
    private String badge;

    @Column(value = "category")
    private Long categoryId;
    private String topImage;
    private String thumbImages;
    private String deliveryInfo;
    private String deliveryFee;
    private String detailSection;
    private int stock;
    private String point;

    // ...
}