com.mysema.codegen.model.Type
오랜만에 쓰는 오류 해결 포스팅!
이번 오류는 maven 이여서 해결하는데 더 오래걸렸다. 진짜 별거 아니었는데ㅠㅠ
1. 문제 발생
2. 문제 원인 찾기 (는 그냥 시도했던 해결방법들)
3. 문제 해결
1. 문제 발생
Querydsl 과 Qdomain 을 사용하기 위해서 의존성 + 플러그인을 주입해줬다.
maven 을 사용했기 때문에 pom.xml 형식이었움
<dependencies> </dependencies> 사이에 넣어준 querydsl 의존성
<!-- Querydsl -->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>4.3.1</version>
</dependency>
<plugins></plugins> 사이에 넣어준 Qdomain 플러그인
<!--Qdomain-->
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
Qdomain 플러그인을 넣어줬기 때문에
Q클래스들이 만들어져야 하는데
여기서 컴파일을 아무리 눌러봐도
com.mysema.codegen.model.Type
해당 오류가 뜬다.
2. 문제 원인 찾기 (는 그냥 시도했던 해결방법들)
2-1 file -> project structure -> modules 에서 sources 설정하기
예전에 maven 을 공부했던 책을 뒤져서 방법을 찾아봤다.
그래서 책을 따라서
해줬지만 해결이 안되었당
2-2 maven clean 해주기
https://velog.io/@yulhee741/JPA-QueryDSL-Q-Class-%EC%83%9D%EC%84%B1-%EC%95%88%EB%90%A0-%EB%95%8C
해당 글을 참고해서 clean 을 해줬지만 마찬가지로
해결ㄴㄴ
2-3 의존성, 플러그인 수정
https://djunnni.gitbook.io/springboot/appendix/querydsl
해당 글을 참고해서 의존성을 수정해줬지만
해결되지 않았ㅠㅠㅠㅠ
(나랑 다른 오류였지만.. 혹시 해결될까봐 무지성 복붙을 했당)
3. 문제 해결
문제 해결은 인프런 사이트의 질문게시판에서 힌트를 얻어서 해결했다.
https://www.inflearn.com/questions/355723
바로 이 글이었는데
직접적으로 도움은 안되었다.
저 글은 커여운 코끼리를 사용했기 때문이다.
나같이 비루하게 maven 을 쓰는 사람은 도움이 되지 않을 것이다.
아무튼 저 글의 핵심은
'커여운 코끼리도 버전오류때문에 q클래스가 생성되지 않았다고 한다.'
그래서 내 비루한 메이븐도 버전을 수정해주기로 했다.
<dependencies> </dependencies> 사이에 넣어준 querydsl 의존성에서 버전 부분을 주석 처리 했다.
<!-- Querydsl -->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<!-- <version>4.3.1</version>-->
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<!-- <version>4.3.1</version>-->
</dependency>
(사실 오류 안나는 버전을 찾으려 엄청 고생 하다가 그냥 주석처리했더니 해결되었따. 이 허무함ㅠㅠ)
그리고 이 안커여운 메이븐 눌러준다음에
다시 컴파일을 더블클릭해줬다.
빌드가 성공했다는 문구가 뜨면서
q클래스가 생성된 것을 확인할 수 있다.
끝!
댓글