inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Querydsl

집합

강의듣는중에 테스트에서 갑자기 모든 테스트가 null point exception 이 뜹니다..

347

Joshua_Kim

작성한 질문수 2

0

안녕하세요 영한팀장님. 강의 너무 잘듣고있습니다.

갑작스럽게 어제까지 잘돌아가던 테스트가 

오늘 '집합'부분 테스트를 만들고나서 (aggregation()메소드)

queryFactory 부분에서 nullpointexception이 납니다.

혹시 QClass가 이상하게 되었나 싶어서 clean하여 다시 컴파일하고 실행해도 동일합니다.

그 전에 잘되었던 기존 테스트들도 줄줄이 똑같은 예외를 뱉으며 테스트에 실패합니다.. 이유가 무엇일까요ㅠ 2시간동안 강의못듣고 끙끙 헤매다가 처음으로 질문을 올려봅니다ㅠㅠㅠ

 

https://drive.google.com/file/d/1ad-mUAI4eRBYuNgKk72mF-MKnpNg2Bp8/view?usp=sharing

 

소스 코드 공유합니다!!

 

또한, symbol을 찾지 못하는 예외도 같이 떠서 구글링중에 인텔리제이 설정도 만져보았으나..

 

해결되지 않습니다 ㅠㅠ 

java JPA

답변 3

3

OMG

안녕하세요. Joshua_Kim님, 공식 서포터즈 OMG입니다.

올리신 프로젝트 확인해보았습니다.

전체 테스트 실행 시

 

@Test
void contextLoads() {
Hello hello = new Hello();
em.persist(hello);

JPAQueryFactory query = new JPAQueryFactory(em);
// QHello qHello = new QHello("h");
QHello qHello = QHello.hello;

Hello result = query
.selectFrom(qHello)
.fetchOne();

assertThat(result).isEqualTo(hello);
assertThat(result.getId()).isEqualTo(hello.getId());
}

이 테스트가 성공하는 것으로 보아 Q클래스 생성에는 문제가 없다고 판단하고 QueryDslBasicTest를 확인해보았습니다.

IDE 상에서
@BeforeEach  //data를 미리 넣어두기 위해 세팅
public void before () {
JPAQueryFactory queryFactory = new JPAQueryFactory(em); //entity
queryFactory 가 흰색으로(사용 중이지 않음)으로 표시 되어 확인해보니

바로 위에
JPAQueryFactory queryFactory; //필드레벨로 가지고와서 이렇게 처리해도된다.
 

가 있더라구요. 필드에서 선언하고, before 메서드에서만 인스턴스를 생성하고 있습니다.

결과적으로 아래와 같이 바꾸시면 테스트 성공합니다.

resultFetch() 테스트는 실패하는데 해당 테스트는 확인해보시길 바랍니다.

 

 

JPAQueryFactory queryFactory; //필드레벨로 가지고와서 이렇게 처리해도된다.

@BeforeEach //data를 미리 넣어두기 위해 세팅
public void before () {
queryFactory = new JPAQueryFactory(em); //entitymanager를 넘겨야함

 

감사합니다.

0

Joshua_Kim

와... 정말 감사합니다. 알고나니 정말 어이가없는데... 허허허 답변 너무나 감사합니다!

 

0

OMG

액세스가 불가능합니다.

링크 있는 사용자는 접근 가능하게 변경해주세요

0

Joshua_Kim

https://drive.google.com/file/d/1ad-mUAI4eRBYuNgKk72mF-MKnpNg2Bp8/view?usp=sharing

 

권한 변경하여 다시 공유합니다!

 

사용하고 있는 인텔리제이는 최신버전입니다

0

OMG

안녕하세요. Joshua_Kim님, 공식 서포터즈 OMG입니다.

https://bit.ly/3fX6ygx

위 링크에서 프로젝트 공유하는 방법을 참고하여 프로젝트 링크를 공유해주세요.

 

액세스 권한 요청이 출력되지 않도록 해당 설명의 step6를 참고부탁드립니다.

감사합니다.

0

Joshua_Kim

https://drive.google.com/file/d/1ad-mUAI4eRBYuNgKk72mF-MKnpNg2Bp8/view?usp=sharing

 

링크 공유합니다!

SpringBoot 4.X에서의 Querydsl 설정

0

157

2

querydsl 오픈소스에 대한 질문

1

101

1

예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?

0

127

1

Querydsl 6.X버전에 대해서 어떻게 생각하시나요?

0

349

2

여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요

1

86

1

fetchResults()는 더이상 권장되지 않는다는데 맞나요?

0

172

1

querydsl sum() 메서드 없어요.

0

169

2

build 디렉터리 생성

0

152

2

자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?

0

123

2

현재 Querydsl에서 from절 서브쿼리를 지원하나요?

0

99

1

오타 제보 드립니다.

0

79

2

벌크 연산과 flush, clear

0

84

1

Run As Intellij 로 변경시 Q타입 import 불가

0

95

1

QHello import하기 문제 발생

0

157

2

등록된 함수 보는법(H2Dialect) 질문

0

76

2

5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의

1

209

2

[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??

1

213

1

querydsl 설정 문제

0

228

2

quey dsl 설정부분

0

168

2

count 쿼리 관련 질문입니다!

0

79

1

stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.

0

98

1

답변부탁드리겠습니다.

0

95

2

(OrderSpecifier)관련 내용 어디있을가요

0

68

1

중급문법 벌크연산에서

0

85

2