QueryDSL: QClass wird generiert, aber Hibernate kann die Zielentität nicht lösen
Posted: 08 Mar 2025, 16:12
Problem < /h2>
Ich arbeite mit Spring Boot 3.2.3 und QueryDSL 5.0.0 in Intellij idee (neueste Version). Ich habe erfolgreich eine QueryDSL -QClass generiert, aber wenn ich versuche, sie zu verwenden, erhalte ich den folgenden Fehler: < /p>
Frage
Warum kann der Hibernate das Bandmanagement enttity nicht beheben, obwohl die QCLASS () wurde erfolgreich generiert? Wie kann ich dieses Problem beheben?
Ich arbeite mit Spring Boot 3.2.3 und QueryDSL 5.0.0 in Intellij idee (neueste Version). Ich habe erfolgreich eine QueryDSL -QClass generiert, aber wenn ich versuche, sie zu verwenden, erhalte ich den folgenden Fehler: < /p>
Code: Select all
{ "code": 500, "message": "org.hibernate.query.sqm.UnknownEntityException: Could not resolve target entity 'BandManagement'" }
< /code>
Die Anweisung in meinem Code ist: < /p>
import static com.softnet.compass_admin.db.phr.entity.device_management.QBandManagement.bandManagement;
< /code>
Umgebung < /h2>
Intellij Idee (neueste Version) < /p>
< /li>
Spring Boot 3.2.3 < /p> < /> < />
< /li> Queryds 5.0.0 < /li>
querydsl 5.0.0 < /li> < /li> queryds. /> < /ul>
Projektstruktur < /h2>
Meine Projektstruktur sieht so aus: < /p>
build
└── generated
└── querydsl [main] sources root
└── generated [main] generated sources root
└── com
└── softnet
└── compass_admin
└── db
└── device
Warum kann der Hibernate das Bandmanagement enttity nicht beheben, obwohl die QCLASS (
Code: Select all
QBandManagement
Code: Select all
// 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: 'org.json', name: 'json', version: '20231013'
// Swagger
implementation("org.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 = configurations.compileClasspath
options.annotationProcessorPath = configurations.annotationProcessor
options.annotationProcessorGeneratedSourcesDirectory = file(querydslDir)
options.compilerArgs = [
"-proc:only",
"-processor", "com.querydsl.apt.jpa.JPAAnnotationProcessor"
]
}
tasks.named('compileJava') {
dependsOn('generateQueryDSL')
}
tasks.named('clean') {
doLast {
file(querydslDir).deleteDir()
}
}