querydsl生成的q源代码未正确导入

问题描述 投票:0回答:1

我正在尝试将querydsl添加到现有系统,但是我遇到了生成Q源进行编译的问题。我已经阅读了几个类似的问题和解释(https://spring.io/blog/2015/09/04/what-s-new-in-spring-data-release-gosling#querydsl-web-supporthttps://blog.jdriven.com/2018/10/using-querydsl-annotation-processor-with-gradle-and-intellij-idea/(即使这与想法有关)),几乎每个堆栈溢出问题为querydsl ...

这是我的build.gradle的一部分,它描述了问题所在:

ext {
  ... 
  querydslVersion = '4.2.1'
}

sourceSets {
    generated {
       java {
            srcDirs = [ 'build/generated' ]
        }
    }
    main {
        java {
            srcDirs = [ 'src/main/java' ]
        }
    }
}

...

dependencies {
    ...
    compile("com.querydsl:querydsl-core:${querydslVersion}")
    compile("com.querydsl:querydsl-jpa:${querydslVersion}")
    compile "com.querydsl:querydsl-apt:$querydslVersion:jpa"
    compileOnly group: 'org.projectlombok', name: 'lombok'
    annotationProcessor(
        "com.querydsl:querydsl-apt:${querydslVersion}:jpa",
        "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final",
        "javax.annotation:javax.annotation-api:1.3.2",
        "org.projectlombok:lombok"
    )
}

当我尝试构建时,我收到错误:存储库类中的cannot find symbol QuerydslBinderCustomizer<QSample>。 QSample.java是根据模型Sample生成的,它位于

/build/generated/sources/annotation processor/Java/卖弄/com/prep/我是/model/Q sample.Java.

由于这位于build文件夹中,我很困惑为什么IDE和gradle不可见。

我不确定我做错了什么。

spring-boot gradle querydsl
1个回答
0
投票

经过多次尝试,我已经完成了querydsl的工作(并且运行良好)。我发布这个答案,以防其他人有同样的问题。在我的例子中,我不得不将sourceSet更改为直接指向annotationProcessor / java / main。之后,一切都按预期工作。

sourceSets.main.java.srcDirs = ['build/generated/sources/annotationProcessor/java/main','src/main/java']

指向build/generatedbuild/generated/sources/annotationProcessorbuild/generated/sources/annotationProcessor/java无法正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.