Unable to configure Querydsl for jakarta persistence entities

28 Views Asked by At

build.gradle

plugins {
...
    id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
}

apply plugin: 'org.liquibase.gradle'
apply plugin: 'com.ewerk.gradle.plugins.querydsl'
def queryDslSourceDirectory = 'src/querydsl/java/generated'
...
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    ...
    implementation 'com.querydsl:querydsl-core:5.1.0'
    implementation 'com.querydsl:querydsl-jpa:5.1.0:jakarta'
    implementation 'com.querydsl:querydsl-apt:5.1.0:jakarta'
    annotationProcessor 'com.querydsl:querydsl-apt:5.1.0:jakarta'
    ...
}
...
querydsl {
    jpa = true
    querydslSourcesDir = queryDslSourceDirectory
}

sourceSets {
    main {
        java {
            srcDir queryDslSourceDirectory
        }
    }
}

compileQuerydsl {
    options.annotationProcessorPath = configurations.querydsl
}
configurations {
    querydsl.extendsFrom compileClasspath
}

BasicDetails.java

...
import jakarta.persistence.*;
...
@Entity
public class BasicDetails {...}

Error log: FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':compileQuerydsl'.

java.lang.NoClassDefFoundError: javax/persistence/Entity

Querydsl shouldn't look for javax.persistence.Entity because I have configured jakarta classifier of querydsl instead of general. I have also lowered the versions of querydsl to 5.0.0 and 4.4.0 but it's throwing same error.

0

There are 0 best solutions below