inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Trong thực tế! Truy vấn

Dynamic Query - Sử dụng BooleanBuilder

java: variable em might not have been initialized 오류

Đã giải quyết

5447

relate16

29 câu hỏi đã được viết

0

@SpringBootTest
@Transactional
public class QuerydslTest {

@Autowired
MemberRepository memberRepository;

@Test
public void dynamic_BooleanBuilder() {
String username = null;
int age = 10;
List<Member> members = memberRepository.searchMemberAll(username, age);
for (Member member : members) {
System.out.println("member = " + member);
}
}
}

MemberRepository를 만들어서

동적쿼리를 테스트하려고 했는데

C:\study\querydsl\querydsl\src\main\java\study\querydsl\repository\MemberRepository.java:21:56

java: variable em might not have been initialized오류가 떴습니다.


@Repository
@RequiredArgsConstructor
public class MemberRepository {

private final EntityManager em;

JPAQueryFactory queryFactory = new JPAQueryFactory(em);

public List<Member> searchMemberAll(String username, Integer age) {

BooleanBuilder booleanBuilder = new BooleanBuilder();
if (username != null) {
booleanBuilder.and(member.username.eq(username));
}

if (age != null) {
booleanBuilder.and(member.age.eq(age));
}
return queryFactory.selectFrom(member).where(booleanBuilder).fetch();
}
}

어디가 문제일까요 ? 

@RequiredArgsConstructor로 

em을 초기화했다고 생각하는데.. ;;

 

 

java JPA

Câu trả lời 1

1

relate16

앗 해결했습니다. 

@Bean으로 등록해서 주입받아야 하는거군요 :]

 

뭔가 그래도 처음엔 될 거라 생각했었는데..

애플리케이션 초기화 순서가 

변수부터 있는 값을 넣은 후, 

영속성컨텍스트에 있는 @Bean이 주입돼서

JPAQueryFactory queryFactory = new JPAQueryFactory(em); 시점에 오류가 나나봐요.

em이 아직 주입받기 전이니까.

맞겠죠 ?

0

yh

네 스스로 잘 해결하셨습니다^^

참고로 생성자를 활용해주세요. 감사합니다.

0

relate16

 

강의 더 들으면서 @Bean 방식 말고도

다른 방식으로 쓰는 것도 보게됐어요 감사합니다.

생성자를 활용하겠습니다! 감사합니다 :]

 

//

혹시 다른 분도 이거에 대해 찾고 계시면 

순수 JPA 리포지토리와 Querydsl 강의 10:48초부터 보시면 됩니다 :]

SpringBoot 4.X에서의 Querydsl 설정

0

106

2

querydsl 오픈소스에 대한 질문

1

82

1

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

0

114

1

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

0

328

2

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

1

73

1

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

0

164

1

querydsl sum() 메서드 없어요.

0

163

2

build 디렉터리 생성

0

142

2

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

0

116

2

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

0

95

1

오타 제보 드립니다.

0

74

2

벌크 연산과 flush, clear

0

77

1

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

0

90

1

QHello import하기 문제 발생

0

150

2

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

0

70

2

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

1

201

2

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

1

203

1

querydsl 설정 문제

0

223

2

quey dsl 설정부분

0

159

2

count 쿼리 관련 질문입니다!

0

75

1

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

0

90

1

답변부탁드리겠습니다.

0

91

2

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

0

67

1

중급문법 벌크연산에서

0

84

2