java - QueryDSL: QClass is generated but Hibernate cannot resolve target entity - Stack Overflow

ProblemI'm working with Spring Boot 3.2.3 and QueryDSL 5.0.0 in IntelliJ IDEA (latest version). I

Problem

I'm working with Spring Boot 3.2.3 and QueryDSL 5.0.0 in IntelliJ IDEA (latest version). I have successfully generated a QueryDSL QClass, but when I try to use it, I get the following error:

{   "code": 500,   "message": ".hibernate.query.sqm.UnknownEntityException: Could not resolve target entity 'BandManagement'" }

The import statement in my code is:

import static com.softnetpass_admin.db.phr.entity.device_management.QBandManagement.bandManagement;

Environment

  • IntelliJ IDEA (latest version)

  • Spring Boot 3.2.3

  • QueryDSL 5.0.0

Project Structure

My project structure looks like this:

build
└── generated
    └── querydsl [main] sources root
        └── generated [main] generated sources root
            └── com
                └── softnet
                    └── compass_admin
                        └── db
                           └── device

Question

Why is Hibernate unable to resolve the BandManagement entity even though the QClass (QBandManagement) has been successfully generated? How can I fix this issue?

What I've Tried

I've set up QueryDSL in my Gradle build file as follows:

// QueryDSL dependencies
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}:jakarta"
annotationProcessor "com.querydsl:querydsl-apt:${queryDslVersion}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

implementation group: '.json', name: 'json', version: '20231013'

// Swagger
implementation(".springdoc:springdoc-openapi-starter-webmvc-ui:2.4.0")
}

// QueryDSL Q-class generation path setup
def querydslDir = "${buildDir}/generated/querydsl"

sourceSets {
    main.java.srcDir querydslDir
}

tasks.register('generateQueryDSL', JavaCompile) {
    source = sourceSets.main.java
    classpath = configurationspileClasspath
    options.annotationProcessorPath = configurations.annotationProcessor
    options.annotationProcessorGeneratedSourcesDirectory = file(querydslDir)
    optionspilerArgs = [
          "-proc:only",
          "-processor", "com.querydsl.apt.jpa.JPAAnnotationProcessor"
    ]
}

tasks.named('compileJava') {
    dependsOn('generateQueryDSL')
}

tasks.named('clean') {
    doLast {
       file(querydslDir).deleteDir()
    }
}

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744927754a4601543.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信