일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 김영한
- 자바ORM표준JPA프로그래밍
- 테크잇
- 최주호
- 조회수중복
- 전적 검색
- 포트 죽이는법
- 알고리즘
- 리코쳇로봇
- java
- DFS
- 자바
- JPA
- 엔에첸
- BFS
- 프로그래머스
- 스프링부트
- 인텔리제이 에러
- 백준
- already use
- 더티체킹
- 카카오2023신입공채
- 멋쟁이사자차럼
- 인프런
- 영속성
- 백엔드 스쿨3기
- 스프링 입문을 위한 자바 객체 지향의 원리와 이해
- 라이엇 API
- 시소 짝꿍
- 올리브영 고객센터
Archives
- Today
- Total
My Blog
즉시로딩 지연로딩 실제 차이 본문
public class RecruitmentArticle {
@Id
@GeneratedValue(strategy = IDENTITY)
private Long id;
@ManyToOne
private Member member;
private int typeValue;
private String articleName;
@CreatedDate
private LocalDateTime createDate;
private String content;
private LocalDateTime deadLineDate;
private Long views;
@OneToMany(mappedBy = "recruitmentArticle", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
@OrderBy("id desc")
private List<Comment> comment;
@OneToOne(cascade = CascadeType.REMOVE, mappedBy = "recruitmentArticle")
private RecruitmentArticleForm recruitmentArticleForm;
@OneToMany(mappedBy = "recruitmentArticle", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
private List<RecruitmentPeople> recruitmentPeople;
}
게시글에 엔티티이다. 게시글과 댓글은 1대다, 게시글과 모집 공고 인원을 1대다로 설정해놨다.
게시글을 조회할 때 댓글을 무조건 조회할 것 같아서 즉시 로딩으로 설정해놨다.
근데 생각해보니 모집 공고 인원은 게시글을 조회할 때 필수는 아니여서 지연 로딩으로 바꿔야 할 것 같다.
위 코드는 recruitmentPeople(모집 공고 인원)을 LAZY로 아래는 EAGER로 한 상태이고 게시글을 클릭했을 때 차이를 보면
게시글을 조회할 때는 모집 인원이 조회가 안되어서 recruitmentPeople에 관한 쿼리를 찾아볼 수 없다.
근데 밑에는 EAGER로 해놨기때문에 모집 공고 인원을 쓰지 않아도 게시글을 조회할 때 recruitmentPeople을 조회하는 쿼리가 나타나는 걸 볼 수 있다.
728x90
'스프링부트 > 스프링부트 인프런 김영한님' 카테고리의 다른 글
프록시의 초기화 과정 (0) | 2023.06.12 |
---|---|
스프링부트 영속성 전이 에러 (0) | 2023.06.08 |
즉시 로딩과 지연 로딩 (0) | 2023.05.29 |
스프링 빈과 의존관계 (0) | 2023.01.14 |
Assertions 테스트 (0) | 2023.01.13 |
Comments