TIL

+33 Spring 1대N 연관관계

JAVABOZA 2023. 7. 20. 16:06
@OneToMany
:: 1대 N관계를 맺어주는 역할

<자식에 외래 키를 가짐>

 

 

 :: 1 : N 한쪽에 엔티티 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것을 의미

:: 소유( has a) 관계라 생각하자

 

단방향

@OneToMany

일대다 관계를 설정하는 에노테이션, 여러 개의 사용자가 하나의 음식에 속 할 수 있음

 

@JoinColumn(name = "food_id")

User엔티티와 조인을 할 때 사용할 컬럼의 이름을 지정

users테이블에 food_id 라는 컬럼이 생성

 

private List<User> userList = new ArrayList<>();

해당 음식을 소유하는 사용자 목록을 저장하는 리스트

 

 


 

양방향

 

원래 일반적으로 1대N관계에서는 양방향 관계 x

양방향 관계를 맺으려면 음식 Entity를 외래키의 주인으로 정해주기 위해

고객 entity에서 mappedBy 옵션을 사용해야 하지만 @ManyToOne 에너테이션은 mappedBy속성을 제공 x

 

 

 

단) N관계의 Entity인 고객 Entity에서 @JoinColumn의 isertable 과 updatable옵션을 

false로 설정하여 양쪽으로 join설정을 하면 양방향처럼 설정 가능

'TIL' 카테고리의 다른 글

+35 Spring 지연로딩  (0) 2023.07.26
+34 Spring N 대 M관계  (0) 2023.07.22
+32 Entity 연관관계 1 대 1 관계  (0) 2023.07.18
+31 Entity 연관 관계  (0) 2023.07.17
+30 Naver Open API  (0) 2023.07.17