관리 메뉴

관심쟁이 영호

[#7.3] Spring Boot ㅣ 스프링 부트 ㅣ Entity Class 개발3 본문

Bank-End/인프런- Spring 공부

[#7.3] Spring Boot ㅣ 스프링 부트 ㅣ Entity Class 개발3

영짱 관심쟁이 영호 2021. 4. 8. 01:40
728x90
반응형

이제 카테고리 엔티티 클래스를 작성할 차례이다.

 

1. 카테고리 작성

@Entity
@Getter
@Setter
public class Category {

    @Id @GeneratedValue
    @Column(name = "category_id")
    private Long id;

    private String name;

    @ManyToMany
    @JoinTable(name = "category_item",// 다대다 관계에서는 중간 테이블을 통해서 매칭시켜주어야한다.
        joinColumns = @JoinColumn(name = "category_id"), //중간 테이블에 있는 아이템
        inverseJoinColumns = @JoinColumn(name = "item_id"))  // 거기에 있는 item으로 들어가는 것
    private List<Item> items = new ArrayList<>();

    @ManyToOne
    @JoinColumn(name = "parent_id")
    private Category parent;


    @OneToMany(mappedBy = "parent")
    private List<Category> child = new ArrayList<>();


}

- 카테고리는 item과 다대다 관계에 있다. 그래서 중간 테이블로 매칭을 시켜주어야 하는데, 그 방법은 먼저 Table로 join을 해주고, 거기서 category id를 찾아간다음 item에 접근해야 한다.

 

- 그리고 부모 자식관계를 위해서 자기 자식을 적어둔다. 트리 구조 같다.

 

2. 이제 실행해주고 생성되는지 확인해본다. (약간의 코드 수정이 있었음, extends, mappedby 빼먹은거 작성)

- JPA가 대신해서 쿼리문을 작성해준것을 볼 수 있다.

- 성공적으로 DB를 작성하였다.

 

해당 강의는 인프런의 "김영한" 개발자님의 강의 정리했습니다.

www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-JPA-%ED%99%9C%EC%9A%A9-1/dashboard

728x90
300x250
0 Comments
댓글쓰기 폼