inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 데이터 JPA

lazy loading 관련 response 관리

해결된 질문

242

PureDouble

작성한 질문수 1

0

안녕하세요. 좋은 강좌 열어주셔서 감사 드립니다.

lazy loading으로 관계를 선언 하였을 때,

서비스 레이어에서는 사용 할 필요가 없지만 client에 Many쪽의 데이터가 필요하여 응답에 추가시키려면,

프로퍼티를 읽어줘서 lazy loading을 발생시켜서 가져오는 방법 말고는 없을까요?

뭔가 아름답지 않게 느껴져서 다른 방법이 있지 않을까 찾아보다가 아래 글을 보았습니다.

제가 질문하려는 내용과 같은 내용으로 보이는데 100% 만족스럽지는 않아서 질문 드리게 되었습니다.

https://okky.kr/article/328445?note=1069683

현재는 요청이 오면 "A" type으로 조회된 데이터를 "A" type의 Dto 인스턴스를 생성 한 뒤에 ModelMapper로 변환시켜 리턴해주고 있으나, 이것도 딱히 만족스럽지는 않네요.

혹시 좋은 의견이 있으시면 알려주시면 감사하겠습니다.

인프런 강좌 감사히 잘 보고 있습니다.

고생 많으시겠지만, 앞으로도 강좌 많이 만들어 주세요! 

spring java JPA

답변 1

0

백기선

Many쪽 데이터가 필요할 때 필요한 쿼리 만들어서 요청하면 되지 않을까요? 굳이 A를 통해서 가져와야 할 필요가 없다면 말이죠.

이전에도 비슷한 질문이 있었는데, 데이터는 해당 요청 처리에 필요한 만큰만 꺼내야 하는게 원칙입니다. 그 필요한 데이터를 언제 꺼내느냐가 fetching 전력이지, fetching 전력 때문에 데이터를 더 꺼내고 덜 꺼내고 하는 일이 발생해선 안되죠. 그건 꺼낼 때 projection을 하든, lazy loading하든 컨트롤 해야죠.

spring boot 2.7.13-SNAPSHOT trace 소문자 로그 안나옴

0

533

1

<스프링 데이터 Common: 기본 리포지토리 커스터마이징> 에 대한 질문

0

392

1

comment table에서 저장될떄 왜 id값이 2부터저장이되는건가요?

0

407

1

@EnableJpaRepositories 설정을 스프링부트가 어디에서 자동설정하나요?

0

451

0

PersistenceContext 관련 질문드립니다.

0

335

1

지금(Eager), 나중에(Lazy)의 의미를 모르겠습니다

0

338

1

transaction 구간이 길어질 경우의 처리방법 문의드립니다.

0

905

1

docker postgres

0

293

1

Multiple DataSource 사용 시 transaction 관련 질문 드립니다.

0

2908

1

entity 중 null이 아닌 필드만 update 할 방법이 있을까요?

0

1191

1

Eager 모드일 경우, join을 inner join으로 바꾸는 법이 있을까요?

0

385

1

엔티티를 상속받는 DTO가 일반적인가요?

1

1847

1

커스텀 타입 클래스를 String 타입 처럼 이용해 쿼리하는 방법에 대해 질문하고 싶습니다.

0

339

1

연관관계 매핑 어떤식으로 해야될지 감이 안잡힙니다.

0

566

4

EntityManager 주입시 Annotation관련 질문드립니다.

0

565

1

클래스 기반 프로젝션 사용 관련 질문

0

560

1

save 메서드 질문드립니다.

0

258

1

복잡한 통계쿼리도 JPA로 가능한가요?

2

5593

1

find 와 get의 차이가 무엇인가요?

0

890

1

실무에서 JPA 할 때 FK로 개발할때 연관관계를 꼭 맺어주어야 하나요?

0

999

1

\dt Did not find any relations.

0

481

1

소스코드는 어디서 볼 수 있을까요?

1

287

1

table 생성과 select 문에 대한 질문

0

174

1

스프링 데이터 RepositoryTest 관련 질문

0

2173

2