인프런 커뮤니티 질문&답변

soollung님의 프로필 이미지

작성한 질문수

실전! Querydsl

강의 자료

factory 에 반환값을 담는 객체가 없어요

20.12.28 07:53 작성

·

161

0

안녕하세요~

기존에 작업하시던 분들이 아래와 같이 반환값을 담는 객체가 없게끔 사용하시던데요

이때는 영속성 객체에만 담겨지게 되는것인가요?

ex) factory.selectFrom(qSchool)
.leftJoin(qSchool.students, qStudent)
.fetch(); // 반환값을 담는 컨테이너가 없음

감사합니다.

답변 3

0

김영한님의 프로필 이미지
김영한
지식공유자

2020. 12. 29. 23:24

네 의문 케이스는 쿼리는 실행되지만 결과를 받아서 저장하는 곳이 없기 때문에 잘못된 코드 입니다.

혹시 앞에 return 이 있으면 즉시 결과를 반환합니다.

감사합니다.

 

0

soollung님의 프로필 이미지
soollung
질문자

2020. 12. 29. 07:49

안녕하세요~

케이스를 좀 나누어서 적어봤습니다.

// 기본케이스

List<School> schools = factory.selectFrom(qSchool).leftJoin(qSchool.students, qStudent).fetch();

// 의문케이스 : schools 와 같은 변수가 없음

factory.selectFrom(qSchool).leftJoin(qSchool.students, qStudent).fetch();

0

김영한님의 프로필 이미지
김영한
지식공유자

2020. 12. 28. 22:27

안녕하세요. soollung님

factory.selectFrom(qSchool) -> factory.select(qSchool).from(qSchool)의 축약입니다. 따라서 같은 뜻입니다.

그리고 반환값을 담는 컨테이너가 없다는 뜻이 정확하게 이해가 안되는데요.

반환을 하지 않으면 값을 조회하고, 아무곳에 담지 않았으니... 데이터베이스에서 조회하고 그냥 버리게 됩니다.

관련된 메서드 전체를 보여주시면 더 도움을 드릴 수 있을 것 같아요.

감사합니다.

soollung님의 프로필 이미지

작성한 질문수

질문하기