오늘도 `StudyWithMe` 프로젝트를 진행을 했다.
오늘은 스터디 룸의 QnA에 대한 `CUD API` 및 테스트 코드 작성
그리고, `RESTful`에 좀 더 적합한 API Endpoint 작성을 위해 코드를 수정했다.
그리고 기본적인거였겠지만... `@ManyToOne` 관계에서 `Lazy Loading`을 했을 때,
연관된 엔티티의 값을 읽으려고 시도하면 쿼리가 한 개가 더 나간다는 사실은
`JPA`를 학습한 사람들이라면 전부 알 것이다.
근데 딱 그것만 알고 있었는데 오늘 코드를 짜면서 알게 된 것이
아니 `Lazy Loading`이여서 `.getId()`를 했을 때 쿼리가 한 개 나가야되는데 왜 안나가지?
궁금해서 이것저것 찾아본 결과 `Lazy Loading`이여도 연관된 엔티티의 `ID` 만큼은 미리 갖고 있는 것이다.
생각해보면 당연한 것이 애초에 `DB`에는 `ID`값은 저장되어 있기도 하고
지연 로딩 시점에 참조해서 가져올 값이 있어야 하는데 만약 `ID`값이 없다면 조회를 한 번더 해야 하므로,
`ID`만큼은 미리 갖고 있는 것 같다.
관련해서는 사진 예시와 함께 추후 포스팅할 것 같다.
'개발 기록' 카테고리의 다른 글
2024-12-16 개발일기 (0) | 2024.12.16 |
---|---|
2024-12-15 개발일기 (0) | 2024.12.15 |
2024-12-10 개발일기 (0) | 2024.12.10 |
2024-12-08 개발일기 (0) | 2024.12.08 |
2024-11-30 학습일기 (0) | 2024.11.30 |