我试图在我的项目中使用QDataTableRepository。它使我必须导入querydsl。
构建.gradle
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'idea'
repositories {
mavenCentral()
}
dependencies {
compile("org.springframework.boot:spring-boot-devtools")
compile('org.springframework.boot:spring-boot-starter')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.postgresql:postgresql:9.4.1212')
compile('org.projectlombok:lombok:1.16.10')
compile group: 'com.github.darrachequesne', name: 'spring-data-jpa-datatables', version: '3.1'
compile group: 'com.querydsl', name: 'querydsl-jpa', version: '4.1.4'
compile group: 'com.querydsl', name: 'querydsl-apt', version: '4.1.4'
testCompile('org.springframework.boot:spring-boot-starter-test')
}
configurations {
querydslapt
}
sourceSets {
generated
}
sourceSets.generated.java.srcDirs = ['generated/']
task generateQueryDSL(type: JavaCompile, group: 'build', description: 'Generates the QueryDSL query types') {
source = sourceSets.main.java
classpath = configurations.compile + configurations.querydslapt
options.compilerArgs = [
"-proc:only",
"-processor", "com.mysema.query.apt.jpa.JPAAnnotationProcessor"
]
destinationDir = sourceSets.generated.java.srcDirs.iterator().next()
}
compileGeneratedJava {
dependsOn generateQueryDSL
classpath += sourceSets.main.runtimeClasspath
}
我还在Intellij中设置了注解处理器。
Picture of Annotation Processor setting
我构建了我的项目,并且构建成功。QClass在里面生成。
给你
Structure
/**
* QClient is a Querydsl query type for Client
*/
@Generated("com.mysema.query.codegen.EntitySerializer")
public class QClient extends EntityPathBase<Client> {
但是当我运行这个项目的时候出现了错误。
Caused by: java.lang.IllegalArgumentException: Did not find a query class com.project.module.client.QClient for domain class om.project.module.client.Client!
我是否遗漏了配置?
1条答案
按热度按时间ezykj2lf1#
对于所有仍然有这个问题的人--就像我不时做的那样:
在我的例子中,默认情况下Q-Class生成在
target/generated-sources/annotations
文件夹中。这个文件夹也被自动标记为源文件夹(文件-〉项目结构-〉模块-〉源):帮助我的:
删除此源文件夹并选择以下文件夹作为源文件夹:
target/generated-sources/annotations/com
个单击Apply -〉OK并运行项目。
有关基于Gradle的解决方案,请参阅此answer。