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

이승환님의 프로필 이미지

작성한 질문수

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

게시글 조회 5 - 페이징 처리 (QueryDSL)

JPAQueryFactory(em)의 객체 생성자 오류에 대해서 질문이 있습니다ㅜㅜ

작성

·

433

0

  • 자꾸 이 오류가 뜹니다..제가 gradle로 하기엔 지금 프로젝트를 하고 있는게 maven이라 메이븐으로 따라가고 있는데 자꾸 생성자를 못찾는다고 뜨네요...ㅠㅠ 왜이러는지 모르겠어요.. 뭔가 설정이나 그런걸 잘못한건가요?

답변 2

1

호돌맨님의 프로필 이미지
호돌맨
지식공유자

안녕하세요.

호돌맨입니다.

혹시 return type이 void가 아니라 JPAQueryFactory가 되어야 하지 않을까요?

그런데.. 그 문제는 아닌것 같고

우선은 JPAQueryFactory 클래스내의 생성자에서 EntityManager를 제대로 받을 수 있는 상황인지 체크 해보시면 좋을것 같습니다.

해결이 잘 안되시면 제가 밖이라.. 소스좀 git에 올려주시면 좀 있다 보도록 하겠습니다.

감사합니다.

이승환님의 프로필 이미지
이승환
질문자

https://github.com/leeshan123/practiceblog 입니다! 바꿔도 여전히 안되네요.. 제가 학원에서 mybatis를 하다가 이제 jpa를 시작했는데 설정이나 이런게 익숙치가 않네요.. ㅠㅠ 답변 기다리겠습니다 !

0

이승환님의 프로필 이미지
이승환
질문자

https://github.com/leeshan123/practiceblog 입니다! 바꿔도 여전히 안되네요.. 제가 학원에서 mybatis를 하다가 이제 jpa를 시작했는데 설정이나 이런게 익숙치가 않네요.. ㅠㅠ 답변 기다리겠습니다 !

호돌맨님의 프로필 이미지
호돌맨
지식공유자

안녕하세요.

확인해봤습니다.

JPAQueryFactory안 생성자에서 받는 EntityManager는 아래와 같고

import javax.persistence.EntityManager;

님이 JPAQueryFactory에서 PersistenceContext로 받은 EntityManager는 아래와 같습니다.

import jakarta.persistence.EntityManager;

pom.xml에서 querydsl을 classifier를 통해 최신 jakarta로 지정해주면 됩니다.

		<!-- https://mvnrepository.com/artifact/com.querydsl/querydsl-jpa -->
		<dependency>
			<groupId>com.querydsl</groupId>
			<artifactId>querydsl-jpa</artifactId>
			<version>5.1.0</version>
			<classifier>jakarta</classifier>
		</dependency>

		<!-- https://mvnrepository.com/artifact/com.querydsl/querydsl-apt -->
		<dependency>
			<groupId>com.querydsl</groupId>
			<artifactId>querydsl-apt</artifactId>
			<version>5.1.0</version>
			<classifier>jakarta</classifier>
		</dependency>

감사합니다.