본문 바로가기
Back-End/Spring

TIL 230628 : mappedBy 적응해보기

by 우인입니다 2023. 6. 28.

 

양방향 관계의 1:1 의 두 Entity

 

 

푸드(좌, 외래키의 주인)          유저(우, 외래키와 PK가 연결되어있음)

양방향일때, mappedBy 옵션으로 외래키의 주인을 지정해줘야한다.

위 예에서는 Food에서 외래키를 갖는 것으로 설정되어있다.

Food에다가 외래키를 테이블 칼럼으로 설정하고 싶은곳에 @JoinColumn하고 Column이름을 설정해준다.

그리고 그 밑에 외래키로 받아올 객체를 선언해준다.

 

양방향의 경우 반대 Entity에는, 다시 말해 외래키가 없는 Entity에는 mappedBy를 써주고 외래키의 주인에 있는 변수명을 뒤에 적어준다. 본인 클래스의 이름이 아닌 외래키의 주인의 변수명을 따르는 것.

 

 

User를 통해 Food 조회해보기

외래키의 주인은 Food. User를 통해서도 조회가 가능한지 확인해보자. 

 

유저Repository에서 그냥 한번 가져와보자.

 

이미 유저안에 Food food에 객체가 불러와져 있다.

mappedBy만으로 저렇게 쿼리가 자동으로 짜주는 것 같다.

보이지않아서 어색하지만 얼른 적응해야할 것들 중 하나라고 생각한다.

 

JPA, Entity간의 구성과 그에 따른 코드가 생각보다 깊이가 깊다.
뇌가 절여지는 기분.
절여지는 만큼 실력이 될거라 믿으며, 내일은 한 시간 일찍 일어나야지.

 

 

뭔가 노션 연습장에 자잘하게 정리하며 공부중인데, TIL에 깔쌈하게 정리할만한 내용이 없었네요.. 좀 더 개념을 숙성시켜보겠습니다.