繁体   English   中英

将querydsl与Spring Boot,Gradle和Idea结合使用时,QClass中的未解析符号

[英]Unresolved symbols in QClasses when using querydsl with Spring Boot, Gradle and Idea

我正在尝试使用querydsl通过spring boot建立一个API。 我已经设法使用Gradle插件生成了QClasses,但是我无法使用这些类,因为QClasses的所有导入都是未解决的。 我将附上有关外观的相关文件和屏幕截图。

plugins {
    id "java"
    id "eclipse"
    id "idea"
    id "org.springframework.boot" version "2.0.1.RELEASE"
    id "io.spring.dependency-management" version "1.0.5.RELEASE"
    id "com.ewerk.gradle.plugins.querydsl" version "1.0.9"
}

querydsl {
    querydslDefault = true
    jpa = true
}

idea {
    module {
        sourceDirs += file('src/querydsl/')
        generatedSourceDirs += file('src/querydsl/')
    }
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-data-rest')
    compile "com.querydsl:querydsl-jpa:4.1.3"
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

这将产生这样的QClass

项目

如您所见,一个小问题是我无法再打开querydsl模块的树。 如果删除sourceDirs += file('src/querydsl/')则可以打开树。 我不知道这是不是故意的。

我的存储库类就是这样

public interface BotRepository extends PagingAndSortingRepository<Bot, UUID>, QuerydslPredicateExecutor<Bot>, QuerydslBinderCustomizer<QBot> {
}

但是我在IntelliJ中得到了这个 在此处输入图片说明

这告诉我即使我在Gradle中添加了源代码,项目模块设置还是有问题。 单击在Add dependency on moduleAdd dependency on module ,可以导入该类。 但是又一次,我得到一个错误 在此处输入图片说明

我很确定会发生此错误,因为QClass不能解析导入。 看起来就是这样 在此处输入图片说明

这就是我被困住的地方。 我无法继续使用API​​。 任何帮助将不胜感激。

PS :我知道有一些答案可以显示如何设置gradle,我使用这些答案进行设置,并决定使用querydsl gradle插件。 因此,我不希望删除该插件并采用其他方式(阅读:querydsl-apt:jpa)

在Eclipse上运行Gradle + Spring Boot + QueryDSL时,我也遇到了一些问题。 但是,我注意到了一些要点:

1)在我的笔记本上,它可以从eclipse作为Java应用程序或Spring Boot App正常运行

2)在我的桌面上,它并没有跑的Java应用程序

3)在我的桌面上,它可以作为Spring Boot App正常运行

4)在我的桌面上,它使用以下命令行正确运行:gradle bootRun

我对第一次观察仍然很感兴趣。

无论如何,请找到我使用的build.gradle。 希望对您有帮助...

plugins {
         id 'org.springframework.boot' version '1.5.8.RELEASE'
         id 'com.ewerk.gradle.plugins.querydsl' version '1.0.9'
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

ext {
     querydslVersion = '4.1.4'
}

wrapper {
         gradleVersion = '4.3.1'
}

repositories {
              mavenCentral()
              maven { url "https://plugins.gradle.org/m2/" }
}

dependencies {
              compile('org.springframework.boot:spring-boot-starter')
              compile('org.springframework.boot:spring-boot-starter-actuator')
              compile('org.springframework.boot:spring-boot-starter-data-mongodb')
              compile('org.springframework.boot:spring-boot-starter-thymeleaf')
              compile('org.springframework.boot:spring-boot-starter-web')

              compile("com.querydsl:querydsl-mongodb:$querydslVersion")

              testCompile('org.springframework.boot:spring-boot-starter-test')
}

querydsl {
          springDataMongo = true
          querydslSourcesDir = 'src/generated-sources/java'
          library = "com.querydsl:querydsl-apt:$querydslVersion"
         }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM