250x250
Notice
Recent Posts
Recent Comments
Link
관심쟁이 영호
[Spring Boot 기초] 연관관계, 주인, 스프링 핵심! 본문
반응형
스프링 공부를 해본 적이 있다면, 누구나 연관관계에 대해서 고민을 해본 적이 있을 것이다.
오늘은 그 연관관계가 어떤 것인지 살펴볼 예정이다.
아래의 그림을 보자.
어떠한 게시판의 게시글의 예시이다.
작성자: 홍길동은 User Table에서 데이터를 가지고 있다.
내용은 Board Table에서 데이터를 가지고 있다.
댓글은 Reply Table에서 데이터를 가지고 있다.
우리가 JPA를 사용하지 않을 때는,
DB에서 JOIN을 이용하여 조회를 한다음 해당하는 데이터를
게시판에 뿌려주는 방식을 사용했을 것이다.
여기서 훨씬 편리하게 JPA기술을 사용할 수가 있다.
JPA를 사용하면
우리가 Board에만 조회쿼리를 날려도 다 나온다.
흐름을 보면
SELECT * FROM Board Where Id = 1;
이렇게 하면 JPA를 거쳐서 DB로 쿼리가 날라가게 된다.
여기서 JPA는 Board 클래스에서 User의 객체가 필요한 것을 보고,
DB에게 User + Board 의 JOIN문을 먼저 날린다.
그리고 해당하는 객체를 JPA가 다시 받아서, User를 들고있는 Board 객체를 가지고 있다.
이 Board에서 댓글은 실제로
@JoinColumn이 필요 없다.
이유는 FK의 값을 여러개를 가질 수가 없기 때문이다.
300x250
'Bank-End > Spring Boot' 카테고리의 다른 글
[Spring Boot 기초] Ajax란? ㅣ Ajax를 사용하는 2가지 이유 (0) | 2021.04.28 |
---|---|
[Spring Boot 기초] Dummy데이터 넣기, 람다식, IllegalException (0) | 2021.04.24 |
[Spring Boot 기초] Board Table 생성 (0) | 2021.04.21 |
[Spring Boot 기초] ㅣ 영속성 컨텍스트란? (0) | 2021.04.08 |
Spring Boot ㅣ JPA, ORM에 관해서 (0) | 2021.04.06 |
Comments