gpt4 book ai didi

java - 将 querydsl 与 Spring Boot、Gradle 和 Idea 一起使用时,QClasses 中未解析的符号

转载 作者:太空宇宙 更新时间:2023-11-04 10:33:26 25 4
gpt4 key购买 nike

我正在尝试使用 querydsl 构建带有 Spring Boot 的 API。我已经设法使用 Gradle 插件生成 QClass,但我无法将这些类用作 QClass,所有它们的导入都未解析。我附上相关文件和屏幕截图来了解情况。

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

Project

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

我的存储库类是这样的

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

但是我在 IntelliJ 中得到了这个 enter image description here

这告诉我,即使我在 Gradle 中添加源代码,项目模块设置也有问题。单击添加对模块的依赖关系后,我可以导入该类。但话又说回来,我收到一个错误 enter image description here

我非常确定发生此错误是因为 QClass 无法解析导入。这就是它的样子 enter image description here

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

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

最佳答案

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

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

2) 在我的桌面上,它没有作为 Java 应用程序运行

3)在我的桌面上,它作为 Spring Boot 应用程序正确运行

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"
}

关于java - 将 querydsl 与 Spring Boot、Gradle 和 Idea 一起使用时,QClasses 中未解析的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49757622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com