'Spring boot mongodb QuerydslPredicateExecutor ClassNotFoundException: com.querydsl.mongodb.document.MongodbDocumentSerializer

I'm trying to use QuerydslPredicateExecutor.

Here is my repository interface:

    public interface ProductsRepository extends MongoRepository<Product, String>,
            PagingAndSortingRepository<Product, String>,
            QuerydslPredicateExecutor<Product>

But I am getting this error:

    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'productsRepository' defined in com.example.MyShopify.repository.ProductsRepository defined in @EnableMongoRepositories declared on MongoRepositoriesRegistrar.EnableMongoRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/querydsl/mongodb/document/MongodbDocumentSerializer
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1309) ~[spring-beans-5.3.19.jar:5.3.19]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:656) ~[spring-beans-5.3.19.jar:5.3.19]
    ... 39 common frames omitted
Caused by: java.lang.NoClassDefFoundError: com/querydsl/mongodb/document/MongodbDocumentSerializer
    at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010) ~[na:na]
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[na:na]
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855) ~[na:na]
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753) ~[na:na]
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676) ~[na:na]
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634) ~[na:na]
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) ~[na:na]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[na:na]
    at org.springframework.data.mongodb.repository.support.QuerydslPredicateExecutorSupport.<init>(QuerydslPredicateExecutorSupport.java:45) ~[spring-data-mongodb-3.3.4.jar:3.3.4]
    at org.springframework.data.mongodb.repository.support.QuerydslMongoPredicateExecutor.<init>(QuerydslMongoPredicateExecutor.java:83) ~[spring-data-mongodb-3.3.4.jar:3.3.4]
    at org.springframework.data.mongodb.repository.support.QuerydslMongoPredicateExecutor.<init>(QuerydslMongoPredicateExecutor.java:69) ~[spring-data-mongodb-3.3.4.jar:3.3.4]
    at org.springframework.data.mongodb.repository.support.MongoRepositoryFactory.getRepositoryFragments(MongoRepositoryFactory.java:121) ~[spring-data-mongodb-3.3.4.jar:3.3.4]
    at org.springframework.data.mongodb.repository.support.MongoRepositoryFactory.getRepositoryFragments(MongoRepositoryFactory.java:94) ~[spring-data-mongodb-3.3.4.jar:3.3.4]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepositoryComposition(RepositoryFactorySupport.java:435) ~[spring-data-commons-2.6.4.jar:2.6.4]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:300) ~[spring-data-commons-2.6.4.jar:2.6.4]
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$5(RepositoryFactoryBeanSupport.java:322) ~[spring-data-commons-2.6.4.jar:2.6.4]
    at org.springframework.data.util.Lazy.getNullable(Lazy.java:230) ~[spring-data-commons-2.6.4.jar:2.6.4]
    at org.springframework.data.util.Lazy.get(Lazy.java:114) ~[spring-data-commons-2.6.4.jar:2.6.4]
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:328) ~[spring-data-commons-2.6.4.jar:2.6.4]
    at org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean.afterPropertiesSet(MongoRepositoryFactoryBean.java:119) ~[spring-data-mongodb-3.3.4.jar:3.3.4]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) ~[spring-beans-5.3.19.jar:5.3.19]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) ~[spring-beans-5.3.19.jar:5.3.19]
    ... 49 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.querydsl.mongodb.document.MongodbDocumentSerializer
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636) ~[na:na]
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) ~[na:na]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[na:na]
    ... 72 common frames omitted


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source