【와신상담】

[jpa] 셀프 양방향 연관관계

아딜렛 2025. 2. 13. 10:42

셀프 양방향 연관관계
자기참조 관계 
카테고리의 계층 구조를 표현하기 위한것

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

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



"전자제품" (부모 카테고리)

"노트북" (자식 카테고리)
"스마트폰" (자식 카테고리)

"애플" (손자 카테고리)
"삼성" (손자 카테고리)


이렇게 계층적인 구조를 데이터베이스에서 표현할 수 있습니다. 데이터베이스 테이블에서는 다음과 같이 저장됩니다:

category_id: 1, name: "전자제품", parent_id: null
category_id: 2, name: "노트북", parent_id: 1
category_id: 3, name: "스마트폰", parent_id: 1
category_id: 4, name: "애플", parent_id: 3
category_id: 5, name: "삼성", parent_id: 3

이러한 구조를 통해 카테고리의 계층 구조를 쉽게 탐색하고 관리할 수 있습니다.