java: variable em might not have been initialized 오류
@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을 초기화했다고 생각하는데.. ;;
Câu trả lời 1
1
앗 해결했습니다.
@Bean으로 등록해서 주입받아야 하는거군요 :]
뭔가 그래도 처음엔 될 거라 생각했었는데..
애플리케이션 초기화 순서가
변수부터 있는 값을 넣은 후,
영속성컨텍스트에 있는 @Bean이 주입돼서
JPAQueryFactory queryFactory = new JPAQueryFactory(em); 시점에 오류가 나나봐요.
em이 아직 주입받기 전이니까.
맞겠죠 ?
0
강의 더 들으면서 @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

