QueryDSL 을 사용하면서 발생한 에러 일지 (NoClassDefFoundError)
아래와 같이 JPAQueryFactory 를 EntityManager 에서 구현하였을 때 방법입니다.
private JPAQueryFactory queryFactory;
public AccountCustomRepositoryImpl(EntityManager entityManager) {
super(Account.class);
queryFactory = new JPAQueryFactory(entityManager);
}
2022-09-02 17:48:52.583 [http-nio-8085-exec-10] [ERROR] o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: com/google/common/collect/Multimap] with root cause
java.lang.ClassNotFoundException: com.google.common.collect.Multimap
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
위와 같은 에러가 발생하였을 때 해결한 방법 일지입니다.
build.gradle
dependencies {
implementation 'com.querydsl:querydsl-jpa'
implementation 'com.querydsl:querydsl-apt'
implementation 'com.querydsl:querydsl-jpa:4.2.2'
// 아래 내용을 추가해줍니다.
implementation 'com.google.guava:guava:31.1-jre'
}
Reference : https://github.com/google/guava
GitHub - google/guava: Google core libraries for Java
Google core libraries for Java. Contribute to google/guava development by creating an account on GitHub.
github.com
QueryDSL 설정 방법을 모아놓은 글입니다.
QueryDSL 에 대해 알아보자
Querydsl 소개 Querydsl은 HQL(Hibernate Query Language) 쿼리를 타입에 안전하게 생성 및 관리할 수 있게 해주는 프레임워크” 입니다. 공식 레퍼런스를 인용한 정의인데, 잘 와닿지 않는다면 “Querydsl은 자.
abbo.tistory.com